Comment calculer les jours ouvrés entre deux dates dans MySQL
De nombreux tableurs populaires, tels qu'Excel, fournissent la fonction NETWORKDAYS() pour calculer le nombre de jours ouvrables entre deux dates. Cependant, MySQL n'a pas de fonction intégrée similaire.
Solution : Expression mathématique
Pour calculer le nombre de jours ouvrés entre deux dates dans MySQL, vous pouvez utiliser l'expression suivante :
<code class="language-sql">5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)</code>
Explication :
DATEDIFF(@E, @S)
: Calcule la différence en jours entre la date de fin (@E) et la date de début (@S). DIV 7
: Divisez la différence par 7 pour obtenir le nombre de semaines entre les dates. 5
: Multipliez le nombre de semaines par 5 pour obtenir le nombre de jours ouvrés. MID()
: extrayez le sous-ensemble de nombres pertinent de la chaîne en fonction de la date de début et de la date de fin. La chaîne spécifique utilisée dans l'expression est construite à partir du nombre de jours ouvrables entre différentes combinaisons de dates de début et de fin. Hypothèses et limites :
Exemple :
Pour calculer le nombre de jours ouvrables entre le '2023-03-06' (@S) et le '2023-03-10' (@E), vous pouvez utiliser la requête suivante :
<code class="language-sql">SELECT 5 * (DATEDIFF('2023-03-10', '2023-03-06') DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY('2023-03-06') + WEEKDAY('2023-03-10') + 1, 1) AS num_working_days;</code>
Cette requête renverra le nombre de jours ouvrés entre deux dates, soit 5.
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!