CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
style 代碼決定輸出格式;varchar(100) 長度需足夠容納最長格式 (如 109/113 需 30+)。
| Style | 標準 | 輸出範例 (2006-05-16 10:57:47.157) | 備註 |
|---|---|---|---|
| 0 / 100 | 預設 | Mon DD YYYY HH:MIAM | 05 16 2006 10:57AM |
| 1 | 美式 | MM/DD/YY | 05/16/06 |
| 2 | ANSI | YY.MM.DD | 06.05.16 |
| 3 | 英式/法式 | DD/MM/YY | 16/05/06 |
| 4 | 德式 | DD.MM.YY | 16.05.06 |
| 5 | 義式 | DD-MM-YY | 16-05-06 |
| 6 | - | DD MON YY | 16 05 06 |
| 7 | - | MON DD, YY | 05 16, 06 |
| 8 | - | HH:MI:SS | 10:57:46 |
| 9 / 109 | 預設+毫秒 | Mon DD YYYY HH:MI:SS:MMMAM | 05 16 2006 10:57:46:827AM |
| 10 | USA | MM-DD-YY | 05-16-06 |
| 11 | 日本 | YY/MM/DD | 06/05/16 |
| 12 | ISO | YYMMDD | 060516 |
| 13 / 113 | 歐洲預設+毫秒 | DD MON YYYY HH:MI:SS:MMM | 16 05 2006 10:57:46:937 |
| 14 | - | HH:MI:SS:MMM | 10:57:46:967 |
| 20 | ODBC 標準 | YYYY-MM-DD HH:MI:SS | 2006-05-16 10:57:47 |
| 21 | ODBC+毫秒 | YYYY-MM-DD HH:MI:SS.MMM | 2006-05-16 10:57:47.157 |
| 22 | USA+秒 | MM/DD/YY HH:MI:SS AM/PM | 05/16/06 10:57:47 AM |
| 23 | ISO 日期 | YYYY-MM-DD | 2006-05-16 |
| 24 | ISO 時間 | HH:MI:SS | 10:57:47 |
| 25 | ODBC+毫秒(另) | YYYY-MM-DD HH:MI:SS.MMM | 2006-05-16 10:57:47.250 |
| 101 | USA 完整年 | MM/DD/YYYY | 05/16/2006 |
| 102 | ANSI 完整年 | YYYY.MM.DD | 2006.05.16 |
| 103 | 英式/法式完整年 | DD/MM/YYYY | 16/05/2006 |
| 104 | 德式完整年 | DD.MM.YYYY | 16.05.2006 |
| 105 | 義式完整年 | DD-MM-YYYY | 16-05-2006 |
| 106 | - | DD MON YYYY | 16 05 2006 |
| 107 | - | MON DD, YYYY | 05 16, 2006 |
| 108 | 時間 24H | HH:MI:SS | 10:57:49 |
| 110 | USA 完整年 | MM-DD-YYYY | 05-16-2006 |
| 111 | 日本 完整年 | YYYY/MM/DD | 2006/05/16 |
| 112 | ISO 精簡 | YYYYMMDD | 20060516 |
| 114 | 時間 24H+毫秒 | HH:MI:SS:MMM | 10:57:49:547 |
| 120 | ODBC 標準 | YYYY-MM-DD HH:MI:SS | 2006-05-16 10:57:49 |
| 121 | ODBC+毫秒(7位) | YYYY-MM-DD HH:MI:SS.MMMMMMM | 2006-05-16 10:57:49.700 |
| 126 | ISO8601 | YYYY-MM-DDTHH:MI:SS.MMM | 2006-05-16T10:57:49.827 |
| 130 | 伊斯蘭曆 | DD MON YYYY HH:MI:SS:MMMAM | 18 ??? ???? 1427 10:57:49:907AM |
| 131 | 伊斯蘭曆/數字 | DD/MM/YYYY HH:MI:SS:MMMAM | 18/04/1427 10:57:49:920AM |
CONVERT(date, GETDATE()) (SQL 2008+) 或 Style 112/23。Style 112 (YYYYMMDD) 字串即可正確排序。WHERE CreatedAt = '2024-01-01' 可能因語系解析失敗,改用 WHERE CreatedAt >= '20240101' AND CreatedAt < '20240102'。SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss', 'zh-TW'); -- 自訂格式,支援文化特性
效能較 CONVERT 低,適合報表/顯示層,不適合高頻查詢過濾。