获取Oracle中两个日期之间的天数,包括日期

Posted

技术标签:

【中文标题】获取Oracle中两个日期之间的天数,包括日期【英文标题】:Get the number of days between two dates in Oracle, inclusive of the dates 【发布时间】:2014-01-10 08:46:54 【问题描述】:

我想获取两个提供日期之间的总天数。我尝试了以下查询,但没有得到完全不同的结果;不包括最后日期。

select (to_date ('15-06-13','dd-MM-yyyy') - to_date('01-02-12','dd-MM-yyyy')) 
  from dual

这应该返回 501 天,但实际上返回的是 500 天。如果我在计算后加上 +1,那么我得到的结果是正确的。

我真的需要包含 +1 还是有其他方法来获得实际结果?

【问题讨论】:

返回 500 天,因为这就是区别 :-)。如果你希望它返回比差值多 1,那么你应该加 1,是的。 @Ben:我想说它没有添加结束日期(即 15-06-13)或开始日期(01-02-12)。我不想增加一天。参考这个链接timeanddate.com/date/… 链接显示“在计算中包括结束日期(添加1天)”;它明确告诉您将添加 1 天。这不是减法的默认行为来执行您的要求,10 - 4 是 6,而不是 5。如果您想更改默认行为,则必须手动进行。 【参考方案1】:

在 Oracle 中,减去两个日期会返回两个日期之间的天数。minus 运算符的工作方式与数字相同:

20 - 20 = 0   ===>      2013-05-20  -  2013-05-20 = 0
25 - 20 = 5   ===>      2013-05-25  -  2013-05-20 = 5

如果要包含last numberlast date,需要加1:

20 - 20 + 1 = 1   ===>      2013-05-20  -  2013-05-20  + 1 = 1
25 - 20 + 1 = 6   ===>      2013-05-25  -  2013-05-20  + 1 = 6

【讨论】:

以上是关于获取Oracle中两个日期之间的天数,包括日期的主要内容,如果未能解决你的问题,请参考以下文章

获取两个日期之间的天数,不包括周末

如何在 oracle sql 中提取两个日期之间的天数?

SQL SERVER:获取两个日期之间的总天数

如何获取 MySQL 上两个日期之间的差异天数?

如何在 Swift 中获取两个日期之间的天数? [复制]

c#如何计算两个日期之间相隔天数