我想计算两个日期之间的天差。
当我计算 '2017-01-01' 和 '2018-01-15' 之间的 Differane 时,它是 379 天。
SELECT DATEDIFF(DD,'2017-01-01','2018-01-15')
但是当我用加法将日期分成两部分时,我得到了结果 378。
select DATEDIFF( DD,'2017-01-01', '2017-12-31') + DATEDIFF( DD,'2018-01-01', '2018-01-15')
谁能解释一下为什么会这样?
最佳答案
这是非常简单的数学:
I: <a,b>
II: <a,c>,<c+1,b> where c is between a and b
I II
b-a != b-(c+1) + c-a
b-a != b-c-1 + c-a
b-a != b-a-1 -- here is 1 missing day
为了使它正确,您可以使用:
select DATEDIFF( DD,'2017-01-01', '2018-01-01')
+ DATEDIFF( DD,'2018-01-01', '2018-01-15')
关于以天为单位的 SQL 日期差异结果错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50621881/