请帮我解决SQL Server中两个日期之间的日期差异。 下面的查询给出错误
DATEDIFF(DD,(convert(date,[Fdate])),(convert(date,[Ldate])))[DDiff]
答案 0 :(得分: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 dateformat
至MDY
或DMY
,或使用try_parse()
的特定文化。