Heim > Datenbank > MySQL-Tutorial > Wie berechnet man Arbeitstage zwischen zwei Daten in SQL Server?

Wie berechnet man Arbeitstage zwischen zwei Daten in SQL Server?

Patricia Arquette
Freigeben: 2025-01-21 23:31:10
Original
674 Leute haben es durchsucht

How to Calculate Workdays Between Two Dates in SQL Server?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

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