So berechnen Sie Arbeitstage zwischen zwei Daten in MySQL
Viele gängige Tabellenkalkulationsprogramme wie Excel bieten die Funktion NETWORKDAYS() zur Berechnung der Anzahl der Arbeitstage zwischen zwei Daten. Allerdings verfügt MySQL nicht über eine ähnliche integrierte Funktion.
Lösung: Mathematischer Ausdruck
Um die Anzahl der Arbeitstage zwischen zwei Daten in MySQL zu berechnen, können Sie den folgenden Ausdruck verwenden:
<code class="language-sql">5 * (DATEDIFF(@E, @S) DIV 7) + MID('0123444401233334012222340111123400001234000123440', 7 * WEEKDAY(@S) + WEEKDAY(@E) + 1, 1)</code>
Erklärung:
DATEDIFF(@E, @S)
: Berechnet die Differenz in Tagen zwischen dem Enddatum (@E) und dem Startdatum (@S). DIV 7
: Teilen Sie die Differenz durch 7, um die Anzahl der Wochen zwischen den Daten zu erhalten. 5
: Multiplizieren Sie die Anzahl der Wochen mit 5, um die Anzahl der Arbeitstage zu erhalten. MID()
: Extrahieren Sie die relevante Teilmenge der Zahlen aus der Zeichenfolge basierend auf dem Startdatum und dem Enddatum. Die im Ausdruck verwendete spezifische Zeichenfolge wird aus der Anzahl der Arbeitstage zwischen verschiedenen Start- und Enddatumskombinationen erstellt. Annahmen und Einschränkungen:
Beispiel:
Um die Anzahl der Arbeitstage zwischen dem 06.03.2023 (@S) und dem 10.03.2023 (@E) zu berechnen, können Sie die folgende Abfrage verwenden:
<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>
Diese Abfrage gibt die Anzahl der Arbeitstage zwischen zwei Daten zurück, also 5.
Das obige ist der detaillierte Inhalt vonWie berechnet man Arbeitstage zwischen zwei Daten in MySQL ohne integrierte Funktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!