Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle SQl Dev, comment calculer le nombre de jours de la semaine entre 2 dates

Cette réponse est similaire à celle de Nicholas, ce qui n'est pas une surprise car vous avez besoin d'une sous-requête avec un CONNECT BY pour faire tourner une liste de dates. Les dates peuvent alors être comptées tout en vérifiant le jour de la semaine. La différence ici est qu'il montre comment obtenir la valeur du nombre de jours de la semaine sur chaque ligne des résultats :

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

Le décompte est inclusif, ce qui signifie qu'il inclut FromDate et ThruDate . Cette requête suppose que vos dates n'ont pas de composant temporel ; si c'est le cas, vous devrez TRUNC les colonnes de date dans la sous-requête.