总结日期之间的差异
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');
我有 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');