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

SQL Server CONVERT 日期格式化完整對照表:100+ 樣式代碼、常用格式與儲存程序實用技巧

     編輯:MySQL 資料庫相關知識

CONVERT 是 SQL Server 日期格式化的核心函數,透過第三個參數 style 控制輸出格式。本文整理 100+ 樣式代碼完整對照表,標註常用格式,並補充儲存程序常用技巧(迴圈、動態 SQL、備份收縮、字串修剪)。

CONVERT 日期格式完整對照表 (GETDATE() 範例輸出)

Style輸出範例說明
0 / 100Mon DD YYYY HH:MIAM/PM預設 (含毫秒)
1 / 101MM/DD/YY / MM/DD/YYYY美式
2 / 102YY.MM.DD / YYYY.MM.DDANSI
3 / 103DD/MM/YY / DD/MM/YYYY英式/歐式
4 / 104DD.MM.YY / DD.MM.YYYY德式
5 / 105DD-MM-YY / DD-MM-YYYY義式
6 / 106DD Mon YY / DD Mon YYYY月份縮寫
7 / 107Mon DD, YY / Mon DD, YYYY
8 / 108HH:MI:SS純時間
9 / 109Mon DD YYYY HH:MI:SS:MMMAM/PM含毫秒
10 / 110MM-DD-YY / MM-DD-YYYY
11 / 111YY/MM/DD / YYYY/MM/DD
12 / 112YYMMDD / YYYYMMDD**常用:無分隔符排序友善**
13 / 113DD Mon YYYY HH:MI:SS:MMM歐洲預設 + 毫秒
14 / 114HH:MI:SS:MMM純時間 + 毫秒
20 / 120YYYY-MM-DD HH:MI:SS**常用:ISO 8601 排序友善**
21 / 121YYYY-MM-DD HH:MI:SS.MMMISO + 毫秒
22MM/DD/YY HH:MI:SS AM/PM
23YYYY-MM-DD**常用:純日期 ISO**
24HH:MI:SS**常用:純時間 24h**
25YYYY-MM-DD HH:MI:SS.MMM
126YYYY-MM-DDTHH:MI:SS.MMM**XML/JSON 標準 ISO 8601**
130DD Mon YYYY HH:MI:SS:MMMAM/PM伊斯蘭曆
131DD/MM/YYYY HH:MI:SS:MMMAM/PM伊斯蘭曆

高頻使用格式速查

-- 純日期 (排序、分組、檔名)
CONVERT(VARCHAR(10), GETDATE(), 23)  -- 2024-01-15
CONVERT(VARCHAR(8), GETDATE(), 112)  -- 20240115

-- 純時間
CONVERT(VARCHAR(8), GETDATE(), 108)  -- 14:30:05
CONVERT(VARCHAR(8), GETDATE(), 24)   -- 14:30:05

-- 完整日期時間 (ISO 8601)
CONVERT(VARCHAR(19), GETDATE(), 120) -- 2024-01-15 14:30:05
CONVERT(VARCHAR(23), GETDATE(), 121) -- 2024-01-15 14:30:05.123
CONVERT(VARCHAR(24), GETDATE(), 126) -- 2024-01-15T14:30:05.123

儲存程序實用技巧彙整

1. WHILE 迴圈批次插入

DECLARE @i INT = 1;
WHILE @i < 30
BEGIN
  INSERT INTO test (userid) VALUES (@i);
  SET @i = @i + 1;
END;

2. 變數代替表名 (動態 SQL)

DECLARE @fld NVARCHAR(255) = 'userName';
DECLARE @sql NVARCHAR(MAX) = 'SELECT ' + QUOTENAME(@fld) + ' FROM tbl';
EXEC sp_executesql @sql;

3. 備份與收縮交易記錄 (簡單模式/緊急)

BACKUP LOG register WITH NO_LOG;           -- 2005/2000
BACKUP LOG register WITH TRUNCATE_ONLY;    -- 2000
DBCC SHRINKDATABASE(register);
2008+ 建議使用 BACKUP LOG ... TO DISK 定期記錄備份,自動截斷 VLF,勿用 TRUNCATE_ONLY。

4. 字串修剪與別名

SELECT [id], [gnname], RTRIM([url]) AS url, [gnsm], [gnqx] FROM [bg_gnmx];
-- RTRIM 去右空格、LTRIM 去左空格
-- 使用函數後**必須加別名**,否則前端無法正確繫結欄位名

最佳實務提醒

  • 資料層**僅負責格式化輸出**,商務邏輯/顯示邏輯建議移至應用層/前端。
  • 跨語系環境優先使用 Style 126 (ISO 8601),避免歧義。
  • 索引欄位勿在 WHERE 條件中套用 CONVERT,導致索引失效 (改用 WHERE datecol >= '2024-01-01' AND datecol < '2024-01-16')。

收藏此對照表,下次格式化日期直接複製 Style 代碼,不再需要臨時測試。

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