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