【问题标题】:Sum the differences between dates总结日期之间的差异
【发布时间】:2015-08-18 18:48:36
【问题描述】:

我有 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。 你能帮帮我吗?

【问题讨论】:

    标签: sql oracle oracle11g date-arithmetic


    【解决方案1】:

    试试这个:

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

    sum 函数会将所有日期的总和相加,这应该会为您提供所需的 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');
    

    【讨论】:

      猜你喜欢
      • 2011-11-19
      • 2023-03-23
      • 2011-02-01
      • 2012-02-04
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多