Berechnung der Werktage zwischen Datumsangaben in SQL Server
Die effiziente Bestimmung der Anzahl der Werktage (Montag-Freitag) zwischen zwei Daten ist für viele SQL Server-Anwendungen von entscheidender Bedeutung. Dies kann mithilfe eines prägnanten T-SQL-Ausdrucks erreicht werden. Die folgende Formel geht von einer normalen Montag-Freitag-Arbeitswoche aus:
<code class="language-sql">SELECT (DATEDIFF(day, @StartDate, @EndDate) + 1) - (DATEDIFF(week, @StartDate, @EndDate) * 2) - CASE WHEN DATENAME(weekday, @StartDate) = 'Sunday' THEN 1 ELSE 0 END - CASE WHEN DATENAME(weekday, @EndDate) = 'Saturday' THEN 1 ELSE 0 END</code>
Hier stellen @StartDate
und @EndDate
das Start- und Enddatum dar. Die Berechnung ermittelt zunächst die Gesamtzahl der Tage und subtrahiert dann die Wochenendtage. Es werden auch Grenzfälle behandelt, bei denen das Startdatum ein Sonntag oder das Enddatum ein Samstag ist.
Mit @StartDate = '2008/10/01'
und @EndDate = '2008/10/31'
ergibt der Ausdruck beispielsweise:
<code>(DATEDIFF(day, '2008/10/01', '2008/10/31') + 1) - (DATEDIFF(week, '2008/10/01', '2008/10/31') * 2) - CASE WHEN DATENAME(weekday, '2008/10/01') = 'Sunday' THEN 1 ELSE 0 END - CASE WHEN DATENAME(weekday, '2008/10/31') = 'Saturday' THEN 1 ELSE 0 END</code>
Das ergibt 21, was den 21 Werktagen zwischen den angegebenen Daten entspricht.
Denken Sie daran: Diese Berechnung berücksichtigt keine Feiertage. Für eine umfassendere Lösung einschließlich Feiertagen wäre eine komplexere Abfrage mit einer Feiertagstabelle erforderlich.
Das obige ist der detaillierte Inhalt vonWie berechnet man die Anzahl der Arbeitstage zwischen zwei Daten in SQL Server?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!