Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle SQl Dev, come calcolare il numero di giorni feriali tra 2 date

Questa risposta è simile a quella di Nicholas, il che non è una sorpresa perché hai bisogno di una sottoquery con un CONNECT BY per creare un elenco di date. Le date possono quindi essere contate mentre si controlla il giorno della settimana. La differenza qui è che mostra come ottenere il valore del conteggio dei giorni della settimana su ciascuna riga dei risultati:

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

Il conteggio è inclusivo, il che significa che include FromDate e ThruDate . Questa query presuppone che le tue date non abbiano una componente temporale; in tal caso dovrai TRUNC le colonne della data nella sottoquery.