SQL Datetime以天为单位的差异

时间:2010-08-16 18:59:50

标签: sql sql-server-2005 datetime datediff

我想知道两个日期之间有多少天。我一直试图用这个:

SET Days_Outstanding = DATEDIFF(day, CONVERT(datetime, LS_CHG_DTE_EQP, 1), CONVERT(datetime, Report_Date, 1))

但是,这并不是以天为单位返回的数字。它返回的是与我的数据集无关的多年的日期时间。

我不确定问题出在哪里,对SQL来说还是比较新的。另外,我将Days_Outstanding定义为int,这可能是问题吗?谢谢!

修改

谢谢大家!不确定发生了什么,我改变了一些你建议的东西,当我回到原来的状态时,它结束了。不确定发生了什么。谢谢你的想法!

3 个答案:

答案 0 :(得分:4)

DATEDIFF返回整数

但是,根据LS_CHG_DTE_EQP/Report_Datelocale

的值/数据类型,天数可能完全错误

此外,DATEDIFF适用于日边界而非24小时。因此23:5600:02是一天。

否则,请添加示例输入和输出。

答案 1 :(得分:3)

实施例

select DATEDIFF(dd,'20100101',getdate())

今天将返回227

所以在你的情况下假设LS_CHG_DTE_EQP和Report_Date都是datetime列

SET @Days_Outstanding = DATEDIFF(day, LS_CHG_DTE_EQP, Report_Date)

答案 2 :(得分:0)

你试过吗

SET Days_Outstanding = CONVERT(datetime, LS_CHG_DTE_EQP, 1) - CONVERT(datetime, Report_Date, 1))