Heim > Datenbank > MySQL-Tutorial > Wie berechnet man mit T-SQL die Arbeitstage zwischen zwei Daten?

Wie berechnet man mit T-SQL die Arbeitstage zwischen zwei Daten?

Susan Sarandon
Freigeben: 2025-01-21 23:27:11
Original
663 Leute haben es durchsucht

How to Calculate Work Days Between Two Dates Using T-SQL?

Effiziente Berechnung von Arbeitstagen in T-SQL

Die Bestimmung der Anzahl der Arbeitstage zwischen zwei Daten ist eine häufige Anforderung in SQL Server. Dies ist von entscheidender Bedeutung für die Projektplanung, die Urlaubsberechnung von Mitarbeitern und andere Geschäftsanwendungen. Dieser Leitfaden demonstriert einen robusten T-SQL-Ansatz.

Eine T-SQL-Lösung für die Arbeitstagsberechnung

Die folgenden Schritte beschreiben eine Methode zur Berechnung von Arbeitstagen in SQL Server mit Transact-SQL (T-SQL):

  1. Variablendeklaration: Beginnen Sie mit der Deklaration von Variablen, die das Start- und Enddatum enthalten.
  2. Datumszuweisung: Weisen Sie diesen Variablen Ihr Start- und Enddatum zu.
  3. Berechnung der Anzahl der Arbeitstage: Die Kernberechnung verwendet diese Formel:

(DATEDIFF(dd, @StartDate, @EndDate) 1) - (DATEDIFF(wk, @StartDate, @EndDate) * 2)

Diese Formel berechnet die Gesamtzahl der Tage, subtrahiert Wochenendtage (zwei pro Woche) und berücksichtigt Szenarien, in denen das Start- oder Enddatum auf ein Wochenende fällt.

Anschauliches Beispiel

Lassen Sie es uns anhand eines praktischen Beispiels veranschaulichen:

<code class="language-sql">DECLARE @StartDate DATETIME;
DECLARE @EndDate DATETIME;
SET @StartDate = '2023-03-06';
SET @EndDate = '2023-03-20';

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

Umgang mit Feiertagen

Für genauere Ergebnisse beziehen Sie Feiertage in die Berechnung ein:

  1. Erstellung einer Feiertagstabelle: Erstellen Sie eine Tabelle, um Feiertagsdaten für das/die relevante(n) Jahr(e) zu speichern.
  2. Abfrageverbesserung:Ändern Sie die Abfrage, um Feiertage von der Arbeitstagzählung auszuschließen, indem Sie sie mit der Feiertagstabelle verknüpfen. Dies erfordert eine ausgefeiltere Abfrage, möglicherweise unter Verwendung eines CTE (Common Table Expression) für bessere Lesbarkeit und Wartbarkeit.

Das obige ist der detaillierte Inhalt vonWie berechnet man mit T-SQL die Arbeitstage zwischen zwei Daten?. 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