SQL Server 中文版預設 datetime 輸出為 yyyy-mm-dd hh:mm:ss.mmm (如 2004-09-12 11:06:08.177)。開發中頻繁需轉換顯示格式,CONVERT 函數第三個參數 (style) 控制輸出樣式,彙整常用代碼如下:
| Style | 輸出範例 | 格式說明 |
|---|---|---|
| 120 | 2004-09-12 11:06:08 | ODBC 標準 (yyyy-mm-dd hh:mi:ss) |
| 111 | 2004/09/12 | yyyy/mm/dd |
| 112 | 20040912 | yyyymmdd (ISO) |
| 102 | 2004.09.12 | yyyy.mm.dd |
| 101 | 09/12/2004 | mm/dd/yyyy (美式) |
| 103 | 12/09/2004 | dd/mm/yyyy (英式) |
| 104 | 12.09.2004 | dd.mm.yyyy (德式) |
| 105 | 12-09-2004 | dd-mm-yyyy (義式) |
| 106 | 12 09 2004 | dd mon yyyy |
| 107 | Sep 12, 2004 | mon dd, yyyy |
| 108 | 11:06:08 | hh:mi:ss (僅時間) |
| 109 | Sep 12 2004 11:06:08:177AM | 預設含毫秒 + AM/PM |
| 110 | 09-12-2004 | mm-dd-yyyy |
| 113 | 12 Sep 2004 11:06:08:177 | dd mon yyyy hh:mi:ss:mmm (歐洲預設) |
| 114 | 11:06:08.177 | hh:mi:ss:mmm (僅時間含毫秒) |
移除所有分隔符號,取得純數字時間戳記:
SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 120), '-', ''), ' ', ''), ':', '')
-- 結果:20040912110608
截取日期部份 (不含時間):
SELECT CONVERT(VARCHAR(10), GETDATE(), 111) -- 2004/09/12
SELECT CONVERT(VARCHAR(8), GETDATE(), 112) -- 20040912
注意: VARCHAR 長度若小於輸出需求會被截斷,建議給足長度 (如 VARCHAR(20))。