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

时间:2013-12-21 17:06:16

标签: oracle oracle11g date-arithmetic

我希望获得两个提供日期之间的总天数。我已经尝试了以下查询,但没有得到完全不同的;最后一个日期没有被包括在内。

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

这应该返回501天,但它将返回500天。如果我在计算后添加+1,那么我得到了正确的结果。

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

1 个答案:

答案 0 :(得分:15)

在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