使用 FORMAT 格式化日期時間

Version >= SQL Server 2012

你可以使用新功能: FORMAT()

使用此功能,你可以將 DATETIME 欄位轉換為你自己的自定義 VARCHAR 格式。

DECLARE @Date DATETIME = '2016-09-05 00:01:02.333'

SELECT FORMAT(@Date, N'dddd, MMMM dd, yyyy hh:mm:ss tt')

2016 年 9 月 5 日星期一 12:01:02 AM

引數

鑑於 DATETIME 的格式是 2016-09-05 00:01:02.333,下面的圖表顯示了它們對提供的引數的輸出。

爭論 輸出
YYYY 2016
YY 16
MMMM 九月
MM 09
M 9
DDDD 星期一
DDD 週一
DD 05
d
HH 00
H 0
HH 12
H 12
毫米 01
1
SS 02
小號 2
TT 上午
Ť 一個
FFF 333
FF 33
F 3

你還可以為 FORMAT() 函式提供單個引數,以生成預格式化的輸出:

DECLARE @Date DATETIME = '2016-09-05 00:01:02.333'

SELECT FORMAT(@Date, N'U')

2016 年 9 月 5 日星期一上午 4:01:02

單個引數 輸出
d 2016 年 9 月 5 日星期一
d 2016 年 9 月 5 日
F 2016 年 9 月 5 日星期一 12:01:02 AM
F 2016 年 9 月 5 日星期一 12:01 AM
G 9/5/2016 12:01:02 AM
G 9/5/2016 12:01 AM
M 05 年 9 月
Ø 2016-09-05T00:01:02.3330000
[R 週一,2016 年 9 月 5 日 00:01:02 GMT
小號 2016-09-05T00:01:02
Ť 上午 12:01:02
Ť 上午 12:01
U 2016 年 9 月 5 日星期一上午 4:01:02
U 2016-09-05 00:01:02Z
ÿ 2016 年 9 月

注意:以上列表使用的是 en-US 文化。可以通過第三個引數為 FORMAT() 指定不同的文化:

DECLARE @Date DATETIME = '2016-09-05 00:01:02.333'

SELECT FORMAT(@Date, N'U', 'zh-cn')

2016 年 9 月 5 日 4:01:02