Microsoft SQL Server 使用FORMAT格式化日期和时间

示例

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,则下表显示了所提供参数的输出。

论据输出结果
yyyy2016年
y16
MMMM九月
MM09
中号9
dddd星期一
ddd周一
dd05
d5
H00
H0
h12
H12
毫米01
1
ss02
s2
tt上午
Ť一种
fff333
ff33
F3

您还可以向该FORMAT()函数提供一个参数以生成预格式化的输出:

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

SELECT FORMAT(@Date, N'U')

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

单论点输出结果
d2016年9月5日星期一
d2016年9月5日
F2016年9月5日星期一12:01:02 AM
F2016年9月5日星期一12:01 AM
G2016/9/5上午12:01:02
G2016/9/5上午12:01
中号九月05
Ø2016-09-05T00:01:02.3330000
[R2016年9月5日,星期一00:01:02 GMT
s2016-09-05T00:01:02
Ť上午12:01:02
Ť上午12:01
ü2016年9月5日星期一4:01:02 AM
ü2016-09-05 00:01:02Z
ÿ2016年9月

注意:上面的列表使用的是en-US区域性。可以FORMAT()通过第三个参数为via指定不同的区域性:

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

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

2016年9月5日4:01:02