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
655 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!

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