2017-05-24 169 views
0

请帮助我获取SQL服务器中两个日期之间的日期差异。 下面的查询给错误在两个日期之间获取日期差异

DATEDIFF(DD,(convert(date,[Fdate])),(convert(date,[Ldate])))[DDiff] 
+3

错误信息是什么意思? – tuomastik

+0

你得到的错误是什么? – Sam

+0

你为什么要在'varchar'列中存储日期? –

回答

3

既然你的SQL Server 2012上,使用try_convert()

select datediff(day,try_convert(date,[fdate]),try_convert(date,[ldate])) as ddiff 

在SQL Server 2012及以上:每个将返回null当转换失败而不是一个错误。


的主要问题可能是你存储日期为字符数据类型。如果是这样,可以根据什么格式的日期存储在造成额外的问题。

您可能需要指定一个style with try_convert(),或set dateformatMDYDMY,或使用特定的文化与try_parse()