Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Berechnung von Feiertagen:Anzahl der Samstage und Sonntage innerhalb der angegebenen Datumsbereichsabfrage in Oracle

Sie könnten den ROW GENERATOR verwenden Technik, zuerst die Daten für einen bestimmten Bereich zu generieren und dann nur die SAMSTAGE und SONNTAGE zu zählen .

Diese Abfrage gibt mir beispielsweise die Gesamtzahl der Samstage und Sonntage zwischen dem 1. Januar 2014 und dem 31. Dezember 2014 -

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>