sql >> Database >  >> RDS >> Oracle

Oracle SQl Dev, hoe het aantal weekdagen tussen 2 datums te berekenen

Dit antwoord is vergelijkbaar met dat van Nicholas, wat geen verrassing is omdat je een subquery nodig hebt met een CONNECT BY om een ​​lijst met datums uit te draaien. De datums kunnen dan worden geteld tijdens het controleren op de dag van de week. Het verschil hier is dat het laat zien hoe je de weekdagtellingswaarde op elke regel van de resultaten kunt krijgen:

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

Het aantal is inclusief, wat betekent dat het FromDate . omvat en ThruDate . Deze query gaat ervan uit dat uw datums geen tijdcomponent hebben; als ze dat doen, moet je TRUNC de datumkolommen in de subquery.



  1. Cache/Hergebruik een subquery in MySQL

  2. Wat betekent 'selecteer' dezelfde tabel als 'van'?

  3. SQL Server Management Studio 2008 Runas-gebruiker op ander domein via VPN

  4. Wat is het doel van een IMPLICIETE JOIN in sql?