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

Oracle SQl Dev, wie man die Anzahl der Wochentage zwischen 2 Daten berechnet

Diese Antwort ähnelt der von Nicholas, was keine Überraschung ist, da Sie eine Unterabfrage mit einem CONNECT BY benötigen um eine Liste mit Daten zu spinnen. Die Daten können dann gezählt werden, während der Wochentag überprüft wird. Der Unterschied hier ist, dass es zeigt, wie man den Wochentag-Zählwert in jeder Zeile der Ergebnisse erhält:

SELECT
  FromDate,
  ThruDate,
  (SELECT COUNT(*)
     FROM DUAL
     WHERE TO_CHAR(FromDate + LEVEL - 1, 'DY') NOT IN ('SAT', 'SUN')
     CONNECT BY LEVEL <= ThruDate - FromDate + 1
  ) AS Weekday_Count
FROM myTable

Die Zählung ist inklusive, d. h. sie enthält FromDate und ThruDate . Diese Abfrage geht davon aus, dass Ihre Datumsangaben keine Zeitkomponente haben; Wenn dies der Fall ist, müssen Sie TRUNC ausführen die Datumsspalten in der Unterabfrage.