0

我有两个日期,想找到包括两个日期在内的天数,我尝试了这样的事情:

select datediff("d", '10/11/2012', '10/12/2012')

它显示 1,但我希望结果为 2,因为我们有 2 天 11 和 12。

4

3 回答 3

9

最新版本的 SQL 引入了对添加整数的支持!耶。

select datediff("d", '10/11/2012', '10/12/2012') + 1
                                                ^^^^^
于 2012-10-11T09:01:21.667 回答
1

如果您也在使用负差异进行操作,添加 1 可能无法为您提供您正在寻找的答案,您可以像这样处理这些情况:

declare @from datetime = '2012-10-11'
declare @to   datetime = '2012-10-10'

select datediff(day, @from, @to) 
 + case when datediff(day, @from, @to) < 0 then -1 else 1 end
于 2012-10-11T09:41:15.033 回答
1

好吧,datediff 总是会找到 2 天之间的差异,正如您所指出的,对于您的示例,这是 1。如果您想让它包含在内,那么为什么不只对结果 +1 呢?

select datediff("d", '10/11/2012', '10/12/2012') + 1
于 2012-10-11T09:02:45.143 回答