总结日期之间的差异

Sum the differences between dates

我有 2 个 tables,master 和 detail,它们都包含与事件相关的日期。第一个包含主记录的开始和结束日期。第二个包含各种间隙,也有开始和结束,与主记录相关并介于其开始日期和结束日期之间。 我可以成功地计算出主记录开始和结束之间的总天数,但是我没有看到如何在详细信息 table 中汇总 "off days" 的总和并将它们分组月。我的意思是:

硕士table

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

总天数:25

详情table

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

总人数"off days":13

数据库环境为Oracle 11g。 你能帮帮我吗?

试试这个:

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

sum 函数将计算所有日期的总和,这应该会得到您想要的 13 "off days"。

如果要添加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');