我想知道两个日期之间有多少天。我一直试图用这个:
SET Days_Outstanding = DATEDIFF(day, CONVERT(datetime, LS_CHG_DTE_EQP, 1), CONVERT(datetime, Report_Date, 1))
但是,这并不是以天为单位返回的数字。它返回的是与我的数据集无关的多年的日期时间。
我不确定问题出在哪里,对SQL来说还是比较新的。另外,我将Days_Outstanding定义为int,这可能是问题吗?谢谢!
谢谢大家!不确定发生了什么,我改变了一些你建议的东西,当我回到原来的状态时,它结束了。不确定发生了什么。谢谢你的想法!
答案 0 :(得分:4)
DATEDIFF
返回整数
但是,根据LS_CHG_DTE_EQP/Report_Date
和locale
此外,DATEDIFF
适用于日边界而非24小时。因此23:56
到00: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))