Maison > base de données > tutoriel mysql > Comment calculer les jours ouvrables entre deux dates dans MySQL ?

Comment calculer les jours ouvrables entre deux dates dans MySQL ?

DDD
Libérer: 2025-01-16 18:23:12
original
280 Les gens l'ont consulté

How to Calculate Business Days Between Two Dates in MySQL?

Calculer les jours ouvrés entre deux dates dans MySQL

La fonction NETWORKDAYS() d'Excel offre un moyen pratique de déterminer le nombre de jours ouvrables entre deux dates spécifiées. Cependant, MySQL ne dispose pas de fonctions intégrées similaires.

Pour résoudre ce problème, voici une expression MySQL qui peut être utilisée comme alternative :

<code class="language-sql">5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)</code>
Copier après la connexion

Cette expression contient les calculs suivants :

  1. Calculer la différence entre les jours ouvrables : (DATEDIFF (@E, @S) DIV 7) Calculez le nombre de semaines entre la date de début @S et ​​la date de fin @E. Divisez par 7 pour obtenir le nombre de semaines complètes, on le multiplie par 5 pour tenir compte du nombre de jours ouvrables par semaine.
  2. Calculez l'indice de début et de fin de journée ouvrable : 7 JOUR SEMAINE (@S) et 7 JOUR SEMAINE (@E) Calculez l'indice journée ouvrable de la date de début et de la date de fin ( Lundi vaut 0, 1 pour mardi, et ainsi de suite). L'ajout de 1 consiste à faire correspondre l'index avec la chaîne numérique décrite ci-dessous.
  3. Récupérer le nombre de jours de la semaine : MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) WEEKDAY(@E) 1, 1) Récupère un seul caractère de la chaîne numérique fournie. Ce caractère représente le nombre de jours ouvrés entre la combinaison de jours ouvrés spécifiée.

La chaîne numérique fournie est construite pour représenter le nombre de jours ouvrables entre chaque combinaison de jours ouvrables (du lundi au lundi, du mardi au mardi, etc.). En combinant les index des jours de la semaine et en récupérant les caractères correspondants, nous obtenons le décompte des jours de la semaine.

Hypothèses et limites :

  • Cette fonction suppose que @E n'est pas antérieur à @S.
  • Il ignore les jours fériés, de sorte que le nombre de jours ouvrables calculé peut ne pas être précis pour les scénarios impliquant des jours fériés.
  • La chaîne numérique est codée en dur dans l'expression et peut devoir être mise à jour si les conventions des jours ouvrables diffèrent (par exemple, si le dimanche est considéré comme un jour ouvrable).

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal