Heim  >  Artikel  >  Datenbank  >  Wie berechnet man die Anzahl der Wochentage zwischen zwei Daten in MySQL?

Wie berechnet man die Anzahl der Wochentage zwischen zwei Daten in MySQL?

Barbara Streisand
Barbara StreisandOriginal
2024-11-02 04:16:02542Durchsuche

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

Berechnen von Tagen zwischen Daten ohne Wochenenden (MySQL)

Die Bestimmung der Differenz zwischen zwei Daten in MySQL ist mit der Funktion DATEDIFF() ganz einfach. Wenn Sie jedoch Wochenenden aus der Berechnung ausschließen müssen, ist ein speziellerer Ansatz erforderlich.

Um dies zu erreichen, sollten Sie die Verwendung der folgenden MySQL-Funktion in Betracht ziehen:

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

Diese Funktion benötigt zwei Datumsangaben als Eingaben und gibt die Anzahl der Tage dazwischen zurück, ausgenommen Wochenenden (d. h. Samstage und Sonntage).

Hier ist eine Aufschlüsselung seiner Komponenten:

  • ABS(DATEDIFF(date2, date1 )) 1: Berechnet die absolute Differenz zwischen den beiden Daten und stellt so ein positives Ergebnis sicher.
  • `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.
  • (DAYOFWEEK(IF(date1 < date2, date1, date2)) = 1): Prüft, ob das erste Datum ein Montag ist.
  • (DAYOFWEEK(IF(date1 > date2, date1, date2)) = 7): Überprüft, ob das zweite Datum ein Sonntag ist.

Durch die Kombination dieser Komponenten liefert die Funktion eine genaue Berechnung der Anzahl der Tage zwischen den beiden Daten, außer an Wochenenden.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Anzahl der Wochentage zwischen zwei Daten in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn