首页 > 解决方案 > SQL 日期格式 - 产生不同的结果

问题描述

我有一个包含 DOB 列的表 Cdata,列值如下:

'1945-01-01 00:00:00.000' 

我将上述格式设置为 'YYYYMMDD' 格式,如下所示:

select  format(c.dob,'yyyymmdd') from dbo.Cdata c where c.cid='12345'

我没有得到预期的输出。

Desired output:'YYYYMMDD' format: '19450101'

瑞克斯特链接:http ://rextester.com/NXBNZC17084

有什么帮助吗?

标签: sql-serverdate

解决方案


您需要在格式中将 mm 大写为 MM。实际上,它将返回日期字符串的分钟部分。尝试以下

DECLARE @A DATETIME = '1945-01-01 00:00:00.000' 
select  format(@A ,'yyyyMMdd') 

推荐阅读