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