Maison > base de données > tutoriel mysql > Comment calculer avec précision les jours ouvrables entre deux dates dans Oracle SQL sans utiliser de fonctions ou de procédures ?

Comment calculer avec précision les jours ouvrables entre deux dates dans Oracle SQL sans utiliser de fonctions ou de procédures ?

Mary-Kate Olsen
Libérer: 2025-01-04 03:53:39
original
247 Les gens l'ont consulté

How to Accurately Calculate Business Days Between Two Dates in Oracle SQL Without Using Functions or Procedures?

Calcul des jours ouvrés dans Oracle SQL (sans fonctions ni procédures)

Lors du calcul des jours ouvrés entre deux dates dans Oracle SQL à l'aide de la formule :

((to_char(CompleteDate,'J') - to_char(InstallDate,'J')) 1) - (((to_char(CompleteDate,'WW') (52 ((to_char(CompleteDate,'YYYY') - to_char(InstallDate,'YYYY'))))) - to_char(InstallDate,'WW' ))2)

peut donner des résultats pour la plupart précis, il s'écarte parfois de 2 jours ou moins. Cette incohérence vient du fait de ne pas tenir compte des facteurs suivants :

  • La formule suppose que tous les mois comportent 30 jours, ce qui n'est pas vrai.
  • Elle exclut les week-ends (samedi et dimanche).

Pour répondre à ces problématiques, une formule plus précise est :

(TRUNC(CompleteDate) - TRUNC(InstallDate) ) 1 -
((((TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')))/ 7)*2) -
(CAS QUAND TO_CHAR(InstallDate,'DY','nls_date_lingual=english')='SUN' THEN 1 ELSE 0 END) -
(CASE WHEN TO_CHAR(CompleteDate,'DY','nls_date_lingual=english')='SAT' THEN 1 ELSE 0 END)

Ici, TRUNC() supprime le composant horaire à partir des dates, et TO_CHAR() extrait le jour de la semaine. Le calcul intègre désormais le nombre de jours entre les dates tronquées, soustrait les week-ends et ajuste les dates de début ou de fin du week-end.

En intégrant ces améliorations, la formule calcule avec précision les jours ouvrables, en s'alignant sur la fonction NETWORKDAYS dans Excel. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal