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

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

Mary-Kate Olsen
Libérer: 2024-12-31 08:26:10
original
781 Les gens l'ont consulté

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

Calculer les jours ouvrés dans Oracle SQL : formule améliorée sans fonctions ni procédures

Le calcul des jours ouvrés entre deux dates dans Oracle SQL est essentiel pour un variété d'applications métiers. Voici une approche améliorée pour y parvenir sans recourir à des fonctions ou des procédures intégrées.

Le code précédent que vous avez fourni présentait des écarts occasionnels dans ses calculs. Pour résoudre ce problème, envisagez les modifications suivantes :

  • Tronquez les dates à l'aide de TRUNC(CompleteDate) et TRUNC(InstallDate) pour supprimer les composants temporels et vous concentrer uniquement sur les jours ouvrables.
  • Calculer la différence entre les jours de la semaine en utilisant (TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')) et divisez par 7 pour tenir compte des week-ends.
  • Appliquer une logique conditionnelle pour ajuster le dimanche ou le samedi étant le début ou la fin de la période, car ils ne sont pas considérés comme des jours ouvrables.

Voici le code affiné :

SELECT OrderNumber, InstallDate, CompleteDate,
  (TRUNC(CompleteDate) - TRUNC(InstallDate) ) +1 - 
  ((((TRUNC(CompleteDate,'D'))-(TRUNC(InstallDate,'D')))/7)*2) -
  (CASE WHEN TO_CHAR(InstallDate,'DY','nls_date_language=english')='SUN' THEN 1 ELSE 0 END) -
  (CASE WHEN TO_CHAR(CompleteDate,'DY','nls_date_language=english')='SAT' THEN 1 ELSE 0 END) as BusinessDays
FROM Orders
ORDER BY OrderNumber;
Copier après la connexion

Ce calcul amélioré devrait fournir des résultats précis pour les jours ouvrables, alignés sur la fonction NETWORKDAYS d'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