Maison > base de données > tutoriel mysql > Comment calculer le nombre de jours de la semaine entre deux dates dans MySQL ?

Comment calculer le nombre de jours de la semaine entre deux dates dans MySQL ?

Barbara Streisand
Libérer: 2024-11-02 04:16:02
original
593 Les gens l'ont consulté

How to Calculate the Number of Weekdays Between Two Dates in MySQL?

Calcul des jours entre des dates hors week-end (MySQL)

Déterminer la différence entre deux dates dans MySQL est simple à l'aide de la fonction DATEDIFF(). Cependant, si vous devez exclure les week-ends du calcul, une approche plus spécialisée est nécessaire.

Pour y parvenir, pensez à utiliser la fonction MySQL suivante :

<code class="mysql">CREATE FUNCTION TOTAL_WEEKDAYS(date1 DATE, date2 DATE)
RETURNS INT
RETURN ABS(DATEDIFF(date2, date1)) + 1
     - ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),
                    ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2
     - (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1)
     - (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7);</code>
Copier après la connexion

Cette fonction prend deux dates comme entrées et renvoie le nombre de jours entre eux, à l'exclusion des week-ends (c'est-à-dire les samedis et dimanches).

Voici une répartition de ses composants :

  • ABS(DATEDIFF(date2, date1 )) 1 : Calcule la différence absolue entre les deux dates, garantissant un résultat positif.
  • `ABS(DATEDIFF(ADDDATE(date2, INTERVAL 1 - DAYOFWEEK(date2) DAY),

                  ADDDATE(date1, INTERVAL 1 - DAYOFWEEK(date1) DAY))) / 7 * 2`: Calculates the number of weekend days between the two dates.
    Copier après la connexion
  • (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1) : Vérifie si la première date est un lundi.
  • (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7) : Vérifie si la deuxième date est un dimanche.

En combinant ces composants, la fonction fournit un calcul précis du nombre de jours entre les deux dates, hors week-end.

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