Wochenenden bei Berechnungen von Datumsdifferenzen ausschließen: Eine MySQL-Lösung
MySQL-Benutzer suchen häufig nach einer genauen Berechnung der Differenz zwischen zwei Daten, ohne Wochenenden Anleitung. Die Standardfunktion DATEDIFF ist zwar für grundlegende Datumsunterschiede nützlich, reicht aber nicht aus, wenn Wochenenden weggelassen werden müssen.
Um dieses Problem zu beheben, kann mit der WEEKDAY-Funktion eine benutzerdefinierte Funktion erstellt werden. So geht's:
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);
Diese Funktion verwendet mehrere MySQL-Funktionen:
Durch die Kombination dieser Funktionen berechnet die Funktion TOTAL_WEEKDAYS die absolute Differenz zwischen den beiden Eingabedaten, subtrahiert die Anzahl der Samstage und Sonntage in der Spanne und passt die Tage am Anfang und Ende des Bereichs an .
Beispielverwendung:
So berechnen Sie die Differenz zwischen zwei Daten, Wochenenden ausgenommen:
SELECT TOTAL_WEEKDAYS('2013-08-03', '2013-08-21') AS weekdays1, TOTAL_WEEKDAYS('2013-08-21', '2013-08-03') AS weekdays2;
Ergebnis:
| WEEKDAYS1 | WEEKDAYS2 | ------------------------- | 13 | 13 |
Das obige ist der detaillierte Inhalt vonWie berechnet man Datumsunterschiede ohne Wochenenden in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!