总结日期之间的差异

时间:2015-06-04 08:45:00

标签: sql oracle oracle11g date-arithmetic

我有2个表,主表和详细信息,都包含与事件相关的日期。第一个包含主记录的开始和结束日期。第二个包含各种间隙,这些间隙也有一个开头和一个终点,与主记录有关,并且在开始和结束日期之间。 我可以成功计算主记录开始和结束之间的总天数,但是我没有看到如何在详细信息表中汇总“关闭日期”的总和并按月分组。我的意思是:

主表

Start date (MM/DD/YYYY): 01/01/2015
End date (MM/DD/YYYY): 01/25/2015

总天数:25

详细信息表

Start date (MM/DD/YYYY) | End date (MM/DD/YYYY) : 
01/02/2015              | 01/05/2015 
01/09/2015              | 01/15/2015
01/18/2015              | 01/19/2015

“休息日”总数:13

数据库环境是Oracle 11g。 你能救我吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

select sum(End_date-Start_date+1) from details_table; 

总和功能会将所有日期的总和相加,这样可以为您提供所需的13个“休息日”。

如果你想添加start_date / end_date条件,你可以这样做。

select sum(End_date-Start_date+1) from details_table 
where Start_date>=to_date('01/01/2015','mm/dd/yyyy') 
and End_date<=to_date('01/25/2015','mm/dd/yyyy');