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

Oracle :Jours entre deux dates et Exclure les jours de la semaine comment gérer les nombres négatifs

Adapté de ma réponse ici :

Obtenir le nombre de jours entre les lundis des deux semaines (en utilisant TRUNC( datevalue, 'IW' ) en tant que NLS_LANGUAGE méthode indépendante de recherche du lundi de la semaine) puis ajouter le jour de la semaine (lundi =1, mardi =2, etc., jusqu'à un maximum de 5 pour ignorer les week-ends) pour la date de fin et soustraire le jour de la semaine pour la date de début. Comme ceci :

SELECT ( TRUNC( end_date, 'IW' ) - TRUNC( start_date, 'IW' ) ) * 5 / 7
       + LEAST( end_date - TRUNC( end_date, 'IW' ) + 1, 5 )
       - LEAST( start_date - TRUNC( start_date, 'IW' ) + 1, 5 )
          AS WeekDaysDifference
FROM   your_table