首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server CONVERT 函數日期格式化代碼完整對照表 (含 131 種樣式)

     編輯:關於SqlServer

CONVERT 語法

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

`style` 參數決定日期/時間輸出格式。以下為常用與完整代碼表 (以 `GETDATE()` 為例,假設 2006-05-16 10:57:46.827)。

常用格式速查

Style輸出範例說明
100May 16 2006 10:57AM預設 (mon dd yyyy hh:miAM/PM)
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 (24h)
109May 16 2006 10:57:49:437AM預設 + 毫秒
11005-16-2006mm-dd-yyyy
1112006/05/16yyyy/mm/dd
11220060516yyyymmdd (ISO 適合排序/檔名)
11316 May 2006 10:57:49:513dd mon yyyy hh:mi:ss:mmm (24h)
11410:57:49:547hh:mi:ss:mmm (24h)
1202006-05-16 10:57:49ODBC 標準 yyyy-mm-dd hh:mi:ss (24h)
1212006-05-16 10:57:49.700ODBC + 毫秒 (SQL 2008+ `datetime2` 精度)
1262006-05-16T10:57:49.827ISO 8601 (XML/JSON 標準)
1272006-05-16T10:57:49.827ZISO 8601 UTC (含時區)
13018 ???? ?????? 1427 10:57:49:907AM伊斯蘭曆 (Kuwait algorithm)
13118/04/1427 10:57:49:920AM伊斯蘭曆 (dd/mm/yyyy)

完整代碼對照 (0-131)

以下為完整列表,含雙位數與三位數 (含世紀) 代碼:

Style  Output (範例)                    備註
0      May 16 2006 10:57AM              預設 (同 100)
1      05/16/06                         美式 yy (同 101)
2      06.05.16                         yy.mm.dd (同 102)
3      16/05/06                         dd/mm/yy (同 103)
4      16.05.06                         dd.mm.yy (同 104)
5      16-05-06                         dd-mm-yy (同 105)
6      16 05 06                         dd mm yy (同 106)
7      May 16, 06                       mon dd, yy (同 107)
8      10:57:46                         hh:mi:ss (同 108)
9      May 16 2006 10:57:46:827AM       預設+毫秒 (同 109)
10     05-16-06                         mm-dd-yy (同 110)
11     06/05/16                         yy/mm/dd (同 111)
12     060516                           yymmdd (同 112)
13     16 05 2006 10:57:46:937          dd mm yyyy hh:mi:ss:mmm (同 113)
14     10:57:46:967                     hh:mi:ss:mmm (同 114)
20     2006-05-16 10:57:47              yyyy-mm-dd hh:mi:ss (同 120)
21     2006-05-16 10:57:47.157          yyyy-mm-dd hh:mi:ss.mmm (同 121)
22     05/16/06 10:57:47 AM             美式+時間 (同 122)
23     2006-05-16                       yyyy-mm-dd (同 123)
24     10:57:47                         hh:mi:ss (同 124)
25     2006-05-16 10:57:47.250          yyyy-mm-dd hh:mi:ss.mmm (同 125)
126    2006-05-16T10:57:49.827          ISO 8601
127    2006-05-16T10:57:49.827Z         ISO 8601 UTC
130    伊斯蘭曆                          (同 130)
131    伊斯蘭曆                          (同 131)

最佳實踐建議

  • 資料交換/儲存:使用 **126 (ISO 8601)** 或 **112 (yyyymmdd)**,無歧義、可排序、跨文化通用。
  • 顯示給使用者:依當地慣例選 103 (台灣/歐洲)、101 (美國)、111 (日本/中國)。
  • 避免使用 0-13, 20-25:兩位數年份易造成 Y2K 風險,僅用於舊系統相容。
  • SQL Server 2008+ 新型別:`DATE`、`TIME`、`DATETIME2`、`DATETIMEOFFSET` 搭配 `FORMAT()` 函數 (`FORMAT(getdate(), 'yyyy-MM-dd')`) 更靈活、效能較好。

結語

背熟 101/103/108/112/120/126 即可應付 95% 場景。其餘依需求查表。新專案優先用 `DATETIME2` + `FORMAT()`。

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