SQL Server CONVERT() 格式化顯示日期和時間 (convert dateime)

在 SQL Server 中,可以用 CONVERT() 函數來用不同的格式顯示日期和時間。

CONVERT() 語法 (Syntax)

CONVERT(data_type, date, style)  

CONVERT() 執行後會返回 date 格式化後的結果。

其中參數 data_type 可以指定輸出的資料型態,例如 varchar;也可以指定長度,例如 varchar(10)。

而參數 style 是用來指定日期和時間的輸出格式,可以是下列這些值:

style id
不含世紀 (yy)
style id
含世紀 (yyyy)
說明顯示格式
-0
100
datetime 和 smalldatetime 的預設值mon dd yyyy hh:miAM (或 PM)
1101美式英文1 = mm/dd/yy
101 = mm/dd/yyyy
2102ANSI2 = yy.mm.dd
102 = yyyy.mm.dd
3103英式英文/法文3 = dd/mm/yy
103 = dd/mm/yyyy
4104德文4 = dd.mm.yy
104 = dd.mm.yyyy
5105義大利文5 = dd-mm-yy
105 = dd-mm-yyyy
6106-6 = dd mon yy
106 = dd mon yyyy
7107-7 = Mon dd, yy
107 = Mon dd, yyyy
8108-hh:mi:ss
-9
109
預設值 + 毫秒mon dd yyyy hh:mi:ss:mmmAM (或 PM)
10110USA10 = mm-dd-yy
110 = mm-dd-yyyy
11111日本11 = yy/mm/dd
111 = yyyy/mm/dd
12112ISO12 = yymmdd
112 = yyyymmdd
-13
113
歐洲預設值 + 毫秒dd mon yyyy hh:mi:ss:mmm(24h)
14114-hh:mi:ss:mmm(24h)
-20
120
ODBC 標準yyyy-mm-dd hh:mi:ss(24h)
-21
121
time、date、datetime2 和 datetimeoffset 的 ODBC 標準 (使用毫秒) 預設值yyyy-mm-dd hh:mi:ss.mmm(24h)
-126ISO8601yyyy-mm-ddThh:mi:ss.mmm (無空格)

注意:針對毫秒 (mmm) 值 0,不會顯示毫秒十進位小數值。 例如,'2012-11-07T18:26:20.000' 值會顯示為 '2012-11-07T18:26:20'。
-127具有時區 Z 的 ISO8601yyyy-mm-ddThh:mi:ss.mmmZ (無空格)

注意:針對毫秒 (mmm) 值 0,不會顯示毫秒十進位值。 例如,'2012-11-07T18:26:20.000' 值會顯示為 '2012-11-07T18:26:20'。
-130回曆dd mon yyyy hh:mi:ss:mmmAM

在此樣式中,mon 代表完整月份名稱的多 Token 回曆 Unicode 表示法。 這個值無法在 SSMS 的預設美國安裝中正確呈現。
-131回曆dd/mm/yyyy hh:mi:ss:mmmAM

CONVERT() 用法 (Example)

SELECT CONVERT(varchar, GETDATE(), 10) AS Converted

得到結果:

Converted
12-20-18

SELECT CONVERT(varchar, GETDATE(), 100) AS Converted

得到結果:

Converted
Dec 20 2018 1:18PM

更多 SQL Server 相關的日期時間函數在這邊
更多 MySQL 相關的日期時間函數在這邊