【问题标题】:Calculating holidays: number of saturdays and sundays within the given date range query in Oracle计算假期:Oracle 中给定日期范围内的周六和周日数量查询
【发布时间】:2015-02-09 08:40:52
【问题描述】:

我想计算假期:Oracle 中给定日期范围内的星期六和星期日的数量。

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    您可以使用 ROW GENERATOR 技术首先为给定范围生成日期,然后只计算 SATURDAYs 和 SUNDAYs

    例如,此查询将提供 2014 年 1 月 1 日至 2014 年 12 月 31 日之间的星期六和星期日的总数 -

    SQL> WITH DATA AS
      2    (SELECT to_date('01/01/2014', 'DD/MM/YYYY') date1,
      3      to_date('31/12/2014', 'DD/MM/YYYY') date2
      4    FROM dual
      5    )
      6  SELECT SUM(holiday) holiday_count
      7  FROM
      8    (SELECT
      9      CASE
     10        WHEN TO_CHAR(date1+LEVEL-1, 'DY','NLS_DATE_LANGUAGE=AMERICAN') IN ('SAT', 'SUN')
     11        THEN 1
     12        ELSE 0
     13      END holiday
     14    FROM data
     15      CONNECT BY LEVEL <= date2-date1+1
     16    )
     17  /
    
    HOLIDAY_COUNT
    -------------
              104
    
    SQL>
    

    【讨论】:

    • 不客气。如果解决了您的问题,请将其标记为已回答。
    • @VishwanthGoud 请将其标记为已回答,会帮助其他人。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多