SQL Server 使用 CONVERT 函數將日期時間轉為指定格式字串,核心在於第三個參數 style 代碼。本文整理常用樣式代碼與實用範例,方便快速查閱。
CONVERT(target_data_type, expression, style)
| Style | 輸出格式範例 | 說明 |
|---|---|---|
| 100 | Mon DD YYYY HH:MIAM/PM | 預設含時間 |
| 101 | MM/DD/YYYY | 美式日期 |
| 102 | YYYY.MM.DD | ANSI 標準帶點 |
| 103 | DD/MM/YYYY | 英式/歐式日期 |
| 104 | DD.MM.YYYY | 德式日期 |
| 105 | DD-MM-YYYY | 義式日期 |
| 106 | DD MON YYYY | 月份縮寫 |
| 107 | MON DD, YYYY | |
| 108 | HH:MI:SS | 純時間 |
| 109 | MON DD YYYY HH:MI:SS:MMMAM/PM | 含毫秒 |
| 110 | MM-DD-YYYY | |
| 111 | YYYY/MM/DD | 日式/ISO 類似 |
| 112 | YYYYMMDD | 純數字,適合排序/檔名 |
| 113 | DD MON YYYY HH:MI:SS:MMM | 歐洲預設含毫秒 |
| 120 | YYYY-MM-DD HH:MI:SS | ISO 8601 24小時制 |
| 121 | YYYY-MM-DD HH:MI:SS.MMM | ISO 8601 含毫秒 |
| 126 | YYYY-MM-DDTHH:MI:SS.MMM | ISO 8601 T 分隔 |
| 127 | YYYY-MM-DDTHH:MI:SS.MMMZ | ISO 8601 UTC |
| 130 | DD MON YYYY HH:MI:SS:MMMAM/PM | 回曆 |
| 131 | DD/MM/YYYY HH:MI:SS:MMMAM/PM | 回曆 |
SELECT CONVERT(char(6), GETDATE(), 112); -- 202412
SELECT * FROM Orders
WHERE CONVERT(date, OrderDate) = '2023-12-15';
-- 或舊版相容
WHERE CONVERT(varchar(10), OrderDate, 120) = '2023-12-15';
SELECT CONVERT(varchar(10), GETDATE(), 120) AS ISO_Date; -- 2024-12-15
SELECT CONVERT(varchar(19), GETDATE(), 120) AS ISO_DateTime; -- 2024-12-15 14:30:00
更靈活、支援 .NET 格式字串,但效能較 CONVERT 低:
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd', 'zh-TW'); -- 2024-12-15
SELECT FORMAT(GETDATE(), 'yyyy年MM月dd日', 'zh-TW'); -- 2024年12月15日
OrderDate >= '2023-12-15' AND OrderDate < '2023-12-16'。CONVERT。style 112 (YYYYMMDD) 與 120 (YYYY-MM-DD) 最常用於匯出檔名、日誌前綴與標準化交換格式。掌握 CONVERT 樣式代碼,能精準控制日期時間輸出格式,滿足報表、匯出、介接等多樣需求。