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) 1 | 101 | 美式英文 | 1 = mm/dd/yy
    101 = mm/dd/yyyy 2 | 102 | ANSI | 2 = yy.mm.dd
    102 = yyyy.mm.dd 3 | 103 | 英式英文/法文 | 3 = dd/mm/yy
    103 = dd/mm/yyyy 4 | 104 | 德文 | 4 = dd.mm.yy
    104 = dd.mm.yyyy 5 | 105 | 義大利文 | 5 = dd-mm-yy
    105 = dd-mm-yyyy 6 | 106 | - | 6 = dd mon yy
    106 = dd mon yyyy 7 | 107 | - | 7 = Mon dd, yy
    107 = Mon dd, yyyy 8 | 108 | - | hh:mi:ss
  • | 9
    109 | 預設值 + 毫秒 | mon dd yyyy hh:mi:ss:mmmAM (或 PM) 10 | 110 | USA | 10 = mm-dd-yy
    110 = mm-dd-yyyy 11 | 111 | 日本 | 11 = yy/mm/dd
    111 = yyyy/mm/dd 12 | 112 | ISO | 12 = yymmdd
    112 = yyyymmdd
  • | 13
    113 | 歐洲預設值 + 毫秒 | dd mon yyyy hh:mi:ss:mmm(24h) 14 | 114 | - | 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)
  • | 126 | ISO8601 | yyyy-mm-ddThh:mi:ss.mmm (無空格)

    注意:針對毫秒 (mmm) 值 0,不會顯示毫秒十進位小數值。 例如,'2012-11-07T18:26:20.000' 值會顯示為 '2012-11-07T18:26:20'。
  • | 127 | 具有時區 Z 的 ISO8601 | yyyy-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 相關的日期時間函數在這邊