Berechnen Sie Arbeitstage zwischen zwei Daten in SQL Server
Die Berechnung der Anzahl der Arbeitstage zwischen zwei bestimmten Daten ist ein wertvolles Werkzeug für die Terminplanung, das Zeitmanagement und eine Vielzahl anderer Geschäftsanwendungen. In SQL Server können Sie mit T-SQL direkt die Arbeitstage von Montag bis Freitag berechnen.
Lösung:
Um die Anzahl der Arbeitstage zwischen zwei Daten (@StartDate und @EndDate) zu ermitteln, können Sie die folgende Formel verwenden:
<code class="language-sql">(DATEDIFF(dd, @StartDate, @EndDate) + 1) - (DATEDIFF(wk, @StartDate, @EndDate) * 2) - (CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END) - (CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)</code>
Formelaufschlüsselung:
DATEDIFF(dd, @StartDate, @EndDate)
Berechnen Sie die Gesamtzahl der Tage zwischen zwei Daten, einschließlich Wochenenden. DATEDIFF(wk, @StartDate, @EndDate)
Berechnen Sie die Anzahl der vollständigen Wochen zwischen zwei Daten. (DATEDIFF(wk, @StartDate, @EndDate) * 2)
stellt die Anzahl der Wochenendtage im angegebenen Datumsbereich dar. (CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END)
Überprüfen Sie, ob das Startdatum Sonntag ist. Wenn ja, ziehen Sie 1 Tag ab. (CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)
Überprüfen Sie, ob das Enddatum ein Samstag ist. Wenn ja, ziehen Sie einen Tag ab. Beispiel:
Um die Anzahl der Arbeitstage zwischen dem 1. Oktober 2008 und dem 31. Oktober 2008 zu berechnen, können Sie die folgende Abfrage verwenden:
<code class="language-sql">DECLARE @StartDate DATETIME DECLARE @EndDate DATETIME SET @StartDate = '2008/10/01' SET @EndDate = '2008/10/31' SELECT (DATEDIFF(dd, @StartDate, @EndDate) + 1) -(DATEDIFF(wk, @StartDate, @EndDate) * 2) -(CASE WHEN DATENAME(dw, @StartDate) = 'Sunday' THEN 1 ELSE 0 END) -(CASE WHEN DATENAME(dw, @EndDate) = 'Saturday' THEN 1 ELSE 0 END)</code>
Diese Abfrage gibt das Ergebnis 22 zurück, das die Anzahl der Arbeitstage zwischen dem 1. und 31. Oktober 2008 ohne Wochenenden darstellt.
Das obige ist der detaillierte Inhalt vonWie berechnet man Arbeitstage zwischen zwei Daten in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!