首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server CONVERT 函數日期時間格式化完整對照表(含 130+ 樣式代碼)

     編輯:MySQL 資料庫相關知識

SQL Server CONVERT 函數透過 style 參數支援多種日期時間輸出格式。本文整理官方支援的所有樣式代碼(0-131),附帶輸出範例與適用場景,方便開發者快速查閱並選擇所需格式。

語法回顧

CONVERT(data_type(length), expression, style)
  • data_type:目標型別,日期格式化常用 varchar、nvarchar
  • expression:日期時間運算式(如 GETDATE()、欄位名)
  • style:格式代碼,決定輸出樣式

完整樣式代碼對照表(以 2006-05-16 10:57:47.157 為例)

Style輸出範例說明 / 標準
0 / 100May 16 2006 10:57AM預設 mon dd yyyy hh:miAM/PM
105/16/06美式 mm/dd/yy
206.05.16yy.mm.dd
316/05/06英式 dd/mm/yy
416.05.06dd.mm.yy
516-05-06dd-mm-yy
616 05 06dd mm yy
7May 16, 06Mon dd, yy
810:57:46hh:mi:ss
9 / 109May 16 2006 10:57:46:827AM含毫秒 mon dd yyyy hh:mi:ss:mmmAM/PM
1005-16-06mm-dd-yy
1106/05/16yy/mm/dd
12060516yymmdd
13 / 11316 May 2006 10:57:46:937歐洲預設 dd mon yyyy hh:mi:ss:mmm (24h)
14 / 11410:57:46:967hh:mi:ss:mmm (24h)
20 / 1202006-05-16 10:57:47ODBC 標準 yyyy-mm-dd hh:mi:ss (24h)
21 / 1212006-05-16 10:57:47.157ODBC 含毫秒 yyyy-mm-dd hh:mi:ss.mmm
2205/16/06 10:57:47 AM美式含時間 mm/dd/yy hh:mi:ss AM/PM
232006-05-16ISO 8601 日期 yyyy-mm-dd
2410:57:47ISO 8601 時間 hh:mi:ss
252006-05-16 10:57:47.250yyyy-mm-dd hh:mi:ss.mmm
10105/16/2006美式四位年 mm/dd/yyyy
1022006.05.16yyyy.mm.dd
10316/05/2006英式四位年 dd/mm/yyyy
10416.05.2006dd.mm.yyyy
10516-05-2006dd-mm-yyyy
10616 May 2006dd mon yyyy
107May 16, 2006Mon dd, yyyy
10810:57:49hh:mi:ss
11005-16-2006mm-dd-yyyy
1112006/05/16yyyy/mm/dd
11220060516ISO 8601 緊湊 yyyymmdd
1262006-05-16T10:57:49.827ISO 8601 完整含 T 分隔符
13018 ???? ?????? 1427 10:57:49:907AM伊斯蘭曆 (Hijri) kuwaiti 演算法
13118/04/1427 10:57:49:920AM伊斯蘭曆 dd/mm/yyyy hh:mi:ss:mmmAM

常用場景速查

需求建議 Style範例語法
標準日期排序/儲存23 / 112CONVERT(varchar(10), GETDATE(), 23) → 2006-05-16
完整日期時間(可排序)120 / 121CONVERT(varchar(19), GETDATE(), 120) → 2006-05-16 10:57:47
API/JSON 傳輸 (ISO 8601)126 / 127CONVERT(varchar(27), GETDATE(), 126) → 2006-05-16T10:57:49.827
中文報表顯示111 / 105CONVERT(varchar(10), GETDATE(), 111) → 2006/05/16
僅時間部分8 / 108 / 24CONVERT(varchar(8), GETDATE(), 108) → 10:57:49
檔名/資料夾命名(無特殊字元)112CONVERT(varchar(8), GETDATE(), 112) → 20060516

進階技巧

1. 自訂格式組合(SQL Server 2012+ 推薦用 FORMAT)

-- 舊版 CONVERT 組合
SELECT CONVERT(varchar(10), GETDATE(), 120) + ' ' + CONVERT(varchar(8), GETDATE(), 108);

-- 新版 FORMAT 更直觀
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss', 'zh-TW');

2. 避免隱含轉換效能損失

錯誤: WHERE CONVERT(varchar(10), OrderDate, 120) = '2024-01-15'(導致索引失效)
正確: WHERE OrderDate >= '2024-01-15' AND OrderDate < '2024-01-16'

3. 樣式代碼對應關係

  • 兩位數代碼(0-14)對應三位數代碼(100-114)差異在於年份位數(2 位 vs 4 位)
  • 120/121 為 ODBC 標準,跨語言解析最安全
  • 126/127 為 XML/JSON 標準格式

版本支援提醒

  • Style 0-14:所有版本支援
  • Style 20-25:SQL Server 2000+
  • Style 100-114:SQL Server 2000+
  • Style 120-121:SQL Server 2000+
  • Style 126-127:SQL Server 2008+
  • Style 130-131:SQL Server 2000+(需安裝伊斯蘭曆支援)

收藏此對照表,下次需要特定日期格式時即可秒級找到正確 style 代碼,避免試誤浪費時間。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved