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

SQL Server DateTime 類型格式轉換完全指南:CONVERT 樣式代碼表與實用範例

     編輯:關於SqlServer

基本語法

CONVERT(VARCHAR(長度), 日期列/變量, 樣式代碼)

長度需足夠容納目標格式(如 10 容納 yyyy-MM-dd,19 容納 yyyy-MM-dd HH:mm:ss)。

常用樣式代碼速查表

Style輸出範例格式說明標準
10109/12/2004MM/DD/YYYYUSA
1022004.09.12YYYY.MM.DDANSI
10312/09/2004DD/MM/YYYYBritish/French
10412.09.2004DD.MM.YYYYGerman
10512-09-2004DD-MM-YYYYItalian
10612 09 2004DD Mon YYYY—
10709 12, 2004Mon DD, YYYY—
10811:06:08HH:MI:SS—
10909 12 2004 11:06:08.177Mon DD YYYY HH:MI:SS:mmmDefault + 毫秒
11009-12-2004MM-DD-YYYYUSA
1112004/09/12YYYY/MM/DDJapan
11220040912YYYYMMDDISO
11312 09 2004 11:06:08.177DD Mon YYYY HH:MI:SS:mmmEurope Default + 毫秒
11411:06:08.177HH:MI:SS:mmm—
1202004-09-12 11:06:08YYYY-MM-DD HH:MI:SSODBC Canonical
1212004-09-12 11:06:08.177YYYY-MM-DD HH:MI:SS.mmmODBC Canonical + 毫秒
1262004-09-12T11:06:08.177YYYY-MM-DDTHH:MI:SS.mmmISO8601
1272004-09-12T11:06:08.177YYYY-MM-DDTHH:MI:SS.mmmZISO8601 UTC
13012 09 2004 11:06:08.177AMDD Mon YYYY HH:MI:SS:mmmAMKuwaiti
13112/09/2004 11:06:08.177AMDD/MM/YYYY HH:MI:SS:mmmAMKuwaiti

實用範例

-- 僅日期
SELECT CONVERT(VARCHAR(10), GETDATE(), 120);  -- 2004-09-12
SELECT CONVERT(VARCHAR(10), GETDATE(), 111);  -- 2004/09/12
SELECT CONVERT(VARCHAR(10), GETDATE(), 102);  -- 2004.09.12
SELECT CONVERT(VARCHAR(10), GETDATE(), 103);  -- 12/09/2004
SELECT CONVERT(VARCHAR(10), GETDATE(), 104);  -- 12.09.2004
SELECT CONVERT(VARCHAR(10), GETDATE(), 105);  -- 12-09-2004
SELECT CONVERT(VARCHAR(10), GETDATE(), 112);  -- 20040912

-- 日期時間
SELECT CONVERT(VARCHAR(19), GETDATE(), 120);  -- 2004-09-12 11:06:08
SELECT CONVERT(VARCHAR(23), GETDATE(), 121);  -- 2004-09-12 11:06:08.177
SELECT CONVERT(VARCHAR(24), GETDATE(), 126);  -- 2004-09-12T11:06:08.177

-- 僅時間
SELECT CONVERT(VARCHAR(8), GETDATE(), 108);   -- 11:06:08
SELECT CONVERT(VARCHAR(12), GETDATE(), 114);  -- 11:06:08.177

進階技巧

  • 拼接自定義格式:REPLACE(CONVERT(VARCHAR(10), GETDATE(), 111), '/', '-') → 2004-09-12
  • 語言無關的 ISO 格式:CONVERT(VARCHAR(23), GETDATE(), 126)(含 T 分隔符)
  • CAST 替代:CAST(GETDATE() AS DATE)(SQL 2008+ 僅日期),CAST(GETDATE() AS TIME)(僅時間)
  • FORMAT 函數(SQL 2012+):FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss', 'zh-CN') 更靈活但性能略低

避坑提醒

  • VARCHAR 長度不足會靜默截斷(如 Style 120 需 ≥19,給 10 只得日期部分)
  • Style 0/100(默認)輸出 Mon DD YYYY HH:MIAM,不可靠,生產環境務必顯式指定 Style
  • 跨語言環境下,僅使用 112/120/121/126/127 等無歧義格式
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved