计算假期:Oracle中给定日期范围查询中的星期六和星期日数

时间:2015-02-09 08:40:53

标签: sql oracle

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

1 个答案:

答案 0 :(得分:0)

您可以使用 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>
相关问题