CONVERT(varchar, GETDATE(), style) 是 SQL Server 將日期時間轉為字串的核心函數,style 代碼決定輸出格式。本文彙整所有支援樣式並標示常用項,方便查閱與複製。
| Style | 輸出範例 | 說明 |
|---|---|---|
| 0 / 100 | 05 16 2006 10:57AM | 預設 mon dd yyyy hh:miAM/PM |
| 1 | 05/16/06 | 美式 mm/dd/yy |
| 2 | 06.05.16 | yy.mm.dd |
| 3 | 16/05/06 | 英式 dd/mm/yy |
| 4 | 16.05.06 | dd.mm.yy |
| 5 | 16-05-06 | dd-mm-yy |
| 6 | 16 05 06 | dd mon yy |
| 7 | 05 16, 06 | mon dd, yy |
| 8 / 24 / 108 | 10:57:46 / 10:57:47 / 10:57:49 | hh:mi:ss (24小時) |
| 9 / 109 | 05 16 2006 10:57:46:827AM / ...:437AM | 含毫秒 + AM/PM |
| 10 | 05-16-06 | mm-dd-yy |
| 11 | 06/05/16 | yy/mm/dd |
| 12 / 112 | 060516 / 20060516 | 無分隔 yymmdd / yyyymmdd |
| 13 / 113 | 16 05 2006 10:57:46:937 / ...:513 | 歐洲預設 + 毫秒 |
| 14 / 114 | 10:57:46:967 / ...:547 | hh:mi:ss:mmm (24小時) |
| 20 / 120 | 2006-05-16 10:57:47 / ...:49 | ODBC 標準 yyyy-mm-dd hh:mi:ss |
| 21 / 121 / 126 | 2006-05-16 10:57:47.157 / .700 / T10:57:49.827 | ODBC 毫秒 / ISO8601 |
| 22 | 05/16/06 10:57:47 AM | 美式 + 時間 |
| 23 | 2006-05-16 | ISO 日期 yyyy-mm-dd |
| 25 | 2006-05-16 10:57:47.250 | yyyy-mm-dd hh:mi:ss.mmm |
| 101 | 05/16/2006 | 美式完整年 |
| 102 | 2006.05.16 | yyyy.mm.dd |
| 103 | 16/05/2006 | 英式完整年 |
| 104 | 16.05.2006 | dd.mm.yyyy |
| 105 | 16-05-2006 | dd-mm-yyyy |
| 106 | 16 05 2006 | dd mon yyyy |
| 107 | 05 16, 2006 | mon dd, yyyy |
| 130 | 18 ???? ?????? 1427 10:57:49:907AM | 伊斯蘭曆 (希拉利) |
| 131 | 18/04/1427 10:57:49:920AM | 伊斯蘭曆數字格式 |
| 需求 | Style | 範例 | 推薦語法 |
|---|---|---|---|
| 純時間 (hh:mi:ss) | 8, 24, 108 | 10:57:47 | CONVERT(char(8), GETDATE(), 108) |
| 短日期 (yyyy-mm-dd) | 23 | 2006-05-16 | CONVERT(char(10), GETDATE(), 23) |
| 標準日期時間 | 120 | 2006-05-16 10:57:49 | CONVERT(char(19), GETDATE(), 120) |
| ISO8601 (含 T) | 126 | 2006-05-16T10:57:49.827 | CONVERT(varchar(23), GETDATE(), 126) |
| 檔名安全日期 | 112 | 20060516 | CONVERT(char(8), GETDATE(), 112) |
FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss'),語意更清晰、支援文化特性。CONVERT 的 varchar 長度建議明確指定 (如 char(10)),避免隱含截斷。收藏此表,日期格式化不再查手冊,直接複製 Style 代碼即用。