使用 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