萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

SQL Server CONVERT 日期格式化完整對照表 (100+ 格式代碼)

CONVERT 函數語法

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

`style` 參數決定輸出格式,以下為常用格式代碼完整對照 (以 `2006-05-16 10:57:46.827` 為例):

完整格式代碼表

Style標準輸出範例備註
0 / 100預設Mon DD YYYY HH:MIAM/PM05 16 2006 10:57AM
1USAMM/DD/YY05/16/06
2ANSIYY.MM.DD06.05.16
3British/FrenchDD/MM/YY16/05/06
4GermanDD.MM.YY16.05.06
5ItalianDD-MM-YY16-05-06
6-DD Mon YY16 05 06
7-Mon DD, YY05 16, 06
8 / 108-HH:MI:SS10:57:46
9 / 109預設+毫秒Mon DD YYYY HH:MI:SS:mmmAM/PM05 16 2006 10:57:46:827AM
10USAMM-DD-YY05-16-06
11JapanYY/MM/DD06/05/16
12ISOYYMMDD060516
13 / 113Europe 默認+毫秒DD Mon YYYY HH:MI:SS:mmm16 05 2006 10:57:46:937
14 / 114-HH:MI:SS:mmm10:57:46:967
20 / 120ODBC 標準YYYY-MM-DD HH:MI:SS2006-05-16 10:57:47
21 / 121ODBC+毫秒YYYY-MM-DD HH:MI:SS.mmm2006-05-16 10:57:47.157
22USAMM/DD/YY HH:MI:SS AM/PM05/16/06 10:57:47 AM
23ISO8601YYYY-MM-DD2006-05-16
24-HH:MI:SS10:57:47
25-YYYY-MM-DD HH:MI:SS.mmm2006-05-16 10:57:47.250
101USAMM/DD/YYYY05/16/2006
102ANSIYYYY.MM.DD2006.05.16
103British/FrenchDD/MM/YYYY16/05/2006
104GermanDD.MM.YYYY16.05.2006
105ItalianDD-MM-YYYY16-05-2006
106-DD Mon YYYY16 05 2006
107-Mon DD, YYYY05 16, 2006
110USAMM-DD-YYYY05-16-2006
111JapanYYYY/MM/DD2006/05/16
112ISOYYYYMMDD20060516
126ISO8601 (T 分隔)YYYY-MM-DDTHH:MI:SS.mmm2006-05-16T10:57:49.827
130HijriDD Mon YYYY HH:MI:SS:mmmAM18 ??? ???? 1427 10:57:49:907AM
131HijriDD/MM/YYYY HH:MI:SS:mmmAM18/04/1427 10:57:49:920AM

高頻使用推薦 (依場景)

場景推薦 Style範例理由
純日期 (排序/檔名/分區)112 / 2320060516 / 2006-05-16無歧義、字典序即時間序、索引友善
完整日期時間 (API/日誌/ETL)120 / 121 / 1262006-05-16 10:57:49ISO 8601 標準、跨語言解析無歧義、含毫秒
僅時間108 / 24 / 11410:57:49108 含秒、114 含毫秒
中文報表顯示111 / 110 / 1032006/05/16符合中文/台灣/歐洲閱讀習慣

常用輔助函數速查

-- 迴圈範例
DECLARE @i INT = 1;
WHILE @i < 30 BEGIN
    INSERT INTO Test (UserID) VALUES (@i);
    SET @i += 1;
END

-- 動態欄位名查詢
DECLARE @Fld NVARCHAR(255) = 'UserName', @Sql NVARCHAR(MAX);
SET @Sql = 'SELECT ' + QUOTENAME(@Fld) + ' FROM Tbl';
EXEC sp_executesql @Sql;

-- 縮減記錄檔 (簡單復原模式下)
BACKUP LOG DBName WITH NO_LOG; -- 2005/2008 已棄用
-- 現代寫法:
ALTER DATABASE DBName SET RECOVERY SIMPLE;
DBCC SHRINKFILE (DBName_Log, 1); -- 目標 1MB
ALTER DATABASE DBName SET RECOVERY FULL;

-- 去除空白
RTRIM(LTRIM(Col)) -- 或 TRIM() SQL 2017+

注意事項

  • 使用 `CONVERT` 後欄位需加別名 (AS) 否則應用層可能無法正確繫結。
  • `Style` 參數為 `INT`,傳入變數時確保型別正確。
  • 語系相關格式 (130/131) 依伺服器語言設定輸出月份名稱。
copyright © 萬盛學電腦網 all rights reserved