我想获取两个给定日期之间的总天数。我尝试了下面的查询,但没有得到精确的差异;最后一个日期没有被包括在内。
select (to_date ('15-06-13','dd-MM-yyyy') - to_date('01-02-12','dd-MM-yyyy'))
from dual
这应该返回501天,但实际上只返回了500天。如果我在计算后添加+1,那么就会得到正确的结果。
我真的需要包括+1吗?还是有其他方法可以获得实际结果?
我想获取两个给定日期之间的总天数。我尝试了下面的查询,但没有得到精确的差异;最后一个日期没有被包括在内。
select (to_date ('15-06-13','dd-MM-yyyy') - to_date('01-02-12','dd-MM-yyyy'))
from dual
这应该返回501天,但实际上只返回了500天。如果我在计算后添加+1,那么就会得到正确的结果。
我真的需要包括+1吗?还是有其他方法可以获得实际结果?
在Oracle中,两个日期相减将返回两个日期之间的天数。
minus
运算符的工作方式与数字相同:
20 - 20 = 0 ===> 2013-05-20 - 2013-05-20 = 0
25 - 20 = 5 ===> 2013-05-25 - 2013-05-20 = 5
如果您想包括最后一个数字
或最后一个日期
,则需要加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