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

SQL Server CONVERT 函數:日期時間格式化樣式代碼完整對照表

     編輯:關於SqlServer

語法

CONVERT(data_type(length), expression, style)

style 代碼決定輸出格式,以下為 datetime 常用樣式(以 2006-05-16 10:57:46.827 為例)。

不含世紀 (yy) 的樣式

Style標準輸出範例備註
0 / 100預設Mon DD YYYY HH:MIAM/PM05 16 2006 10:57AM
1美國MM/DD/YY05/16/06
2ANSIYY.MM.DD06.05.16
3英式/法式DD/MM/YY16/05/06
4德式DD.MM.YY16.05.06
5義式DD-MM-YY16-05-06
6DD MON YY16 05 06
7MON DD, YY05 16, 06
8HH:MI:SS10:57:46
9 / 109預設+毫秒Mon DD YYYY HH:MI:SS:MMMAM/PM05 16 2006 10:57:46:827AM
10美國MM-DD-YY05-16-06
11日本YY/MM/DD06/05/16
12ISOYYMMDD060516
13歐洲預設DD MON YYYY HH:MI:SS:MMM(24h)16 05 2006 10:57:46:937
14HH:MI:SS:MMM(24h)10:57:46:967

含世紀 (yyyy) 的樣式 (建議優先使用)

Style標準輸出範例備註
20ODBC 標準YYYY-MM-DD HH:MI:SS2006-05-16 10:57:47
21ODBC + 毫秒YYYY-MM-DD HH:MI:SS.MMM2006-05-16 10:57:47.157
22美國MM/DD/YY HH:MI:SS AM/PM05/16/06 10:57:47 AM
23ISO 8601YYYY-MM-DD2006-05-16
24HH:MI:SS10:57:47
25YYYY-MM-DD HH:MI:SS.MMM2006-05-16 10:57:47.250
101美國MM/DD/YYYY05/16/2006
102ANSIYYYY.MM.DD2006.05.16
103英式/法式DD/MM/YYYY16/05/2006
104德式DD.MM.YYYY16.05.2006
105義式DD-MM-YYYY16-05-2006
106DD MON YYYY16 05 2006
107MON DD, YYYY05 16, 2006
108HH:MI:SS10:57:49
110美國MM-DD-YYYY05-16-2006
111日本YYYY/MM/DD2006/05/16
112ISOYYYYMMDD20060516
113歐洲預設+毫秒DD MON YYYY HH:MI:SS:MMM(24h)16 05 2006 10:57:49:513
120ODBC 標準YYYY-MM-DD HH:MI:SS2006-05-16 10:57:47
121ODBC + 毫秒YYYY-MM-DD HH:MI:SS.MMM2006-05-16 10:57:47.157
126ISO 8601YYYY-MM-DDTHH:MI:SS.MMM2006-05-16T10:57:47.157
127ISO 8601 (UTC)YYYY-MM-DDTHH:MI:SS.MMMZ2006-05-16T10:57:47.157Z
130回曆DD MON YYYY HH:MI:SS:MMMAM/PM17 04 1427 10:57:47:157AM
131回曆DD/MM/YYYY HH:MI:SS:MMMAM/PM17/04/1427 10:57:47:157AM

實用技巧


-- 1. 只取日期部分 (效能優於 CAST)
SELECT CONVERT(DATE, GETDATE());           -- SQL 2008+
SELECT CONVERT(CHAR(10), GETDATE(), 120);  -- 2006-05-16

-- 2. 只取時間部分
SELECT CONVERT(TIME, GETDATE());           -- SQL 2008+
SELECT CONVERT(CHAR(8), GETDATE(), 108);   -- 10:57:46

-- 3. 檔案命名安全格式 (無特殊字元)
SELECT REPLACE(CONVERT(CHAR(19), GETDATE(), 120), ':', '')  -- 20060516105746
      + REPLACE(CONVERT(CHAR(3), GETDATE(), 121), '.', ''); -- +毫秒

-- 4. 中文顯示格式
SELECT CONVERT(NVARCHAR, GETDATE(), 111) + N' ' + 
       DATENAME(WEEKDAY, GETDATE());  -- 2006/05/16 星期二

注意事項

  • Style 代碼為 int,不可用變數動態指定(需動態 SQL)。
  • SQL Server 2012+ 新增 FORMAT() 函數,支援 .NET 格式字串(如 FORMAT(GETDATE(), 'yyyy-MM-dd', 'zh-TW')),但效能較 CONVERT 低。
  • 跨語系環境建議使用 Style 112/120/126 等 ISO 格式,避免月份名稱語系差異。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved