Heim > Datenbank > MySQL-Tutorial > Wie kann ich in MySQL Werktage zwischen zwei Daten berechnen, ohne Feiertage zu berücksichtigen?

Wie kann ich in MySQL Werktage zwischen zwei Daten berechnen, ohne Feiertage zu berücksichtigen?

Mary-Kate Olsen
Freigeben: 2025-01-16 18:13:14
Original
302 Leute haben es durchsucht

How Can I Calculate Business Days Between Two Dates in MySQL Without Considering Holidays?

Effiziente Berechnung von Werktagen (außer Wochenenden) in MySQL

Viele Bewerbungen erfordern die Berechnung der Anzahl der Werktage zwischen zwei Daten. Während Tabellenkalkulationssoftware hierfür oft integrierte Funktionen bietet (wie NETWORKDAYS), fehlt MySQL ein direktes Äquivalent. In diesem Artikel wird ein prägnanter MySQL-Ausdruck vorgestellt, um dies zu erreichen, wobei der Schwerpunkt auf dem Ausschluss von Wochenenden liegt. Beachten Sie, dass diese Lösung Feiertage nicht berücksichtigt.

Der MySQL-Ausdruck

Um Werktage zwischen den Daten @S (Startdatum) und @E (Enddatum) zu ermitteln, verwenden Sie Folgendes:

<code class="language-sql">5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400012345001234550', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)</code>
Nach dem Login kopieren

Wie es funktioniert:

Dieser Ausdruck kombiniert geschickt mehrere MySQL-Funktionen:

  1. DATEDIFF(@E, @S): Berechnet die Gesamtzahl der Tage zwischen den beiden Daten.

  2. DIV 7: Teilt die Gesamtzahl der Tage durch 7 und ergibt so die Anzahl der vollen Wochen.

  3. *` 5`:** Multipliziert die Anzahl der Wochen mit 5, um die fünf Werktage in jeder Woche zu berücksichtigen.

  4. WEEKDAY(@S) und WEEKDAY(@E): Bestimmen Sie den Wochentag (0 für Sonntag, 1 für Montag usw.) sowohl für das Start- als auch für das Enddatum.

  5. *`7 WEEKDAY(@S) WEEKDAY(@E) 1`:** Diese Berechnung generiert einen Index in der Suchzeichenfolge.

  6. MID('0123444401233334012222340111123400012345001234550', ..., 1): Die Funktion MID verwendet den berechneten Index, um eine einzelne Ziffer aus einer geschickt konstruierten Zeichenfolge zu extrahieren. Diese Ziffer stellt die verbleibenden Werktage dar, die bei der Berechnung der gesamten Wochen nicht erfasst werden (unter Berücksichtigung der Teilwochen am Anfang und am Ende).

Diese Methode bietet eine schnelle und effiziente Möglichkeit, Arbeitstage in MySQL mit Ausnahme von Wochenenden zu schätzen, ohne dass die Komplexität der Handhabung von Feiertagen anfällt. Für eine umfassendere Lösung einschließlich Feiertagen wäre ein aufwändigerer Ansatz mit einer Feiertagstabelle erforderlich.

Das obige ist der detaillierte Inhalt vonWie kann ich in MySQL Werktage zwischen zwei Daten berechnen, ohne Feiertage zu berücksichtigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage