Wenn ich zwei Termine habe, kann ich herausfinden, wie viele Tage, Stunden, Minuten usw. zwischen den beiden Terminen mit datediff
liegen, z. B .:
Wie finde ich heraus, ob der Zeitraum ein Wochenende umfasst?
Der Grund, warum ich wissen möchte, ob der Zeitraum ein Wochenende umfasst, ist, weil ich das Wochenende von der Tages- oder Stundenzählung abziehen möchte. Wenn der Starttag Freitag ist und das Enddatum Montag ist, sollte ich nur 1 Tag oder 24 Stunden erhalten.
Datumsteil 1 = Sonntag und Datumsteil 7 = Samstag auf meinem Server.
Sie haben einen Wochenendtag, wenn eine der folgenden drei Bedingungen zutrifft:
Der Wochentag (als Ganzzahl) des Enddatums ist kleiner als der Wochentag des Startdatums
Jeder Tag ist selbst ein Wochenendtag
Das Angebot umfasst mindestens sechs Tage
.
%Vor%Sie können folgende Funktionen verwenden. Der erste verschiebt ein bestimmtes Start- oder Enddatum auf Montag (Freitag wenn rückwärts), wenn es am Wochenende beginnt. Die Sekunde berechnet die Sekunden zwischen zwei Daten ohne Wochenenden. Dann müssen Sie nur überprüfen, ob die Gesamttage den Tagen ohne Weksends entsprechen (Demo unten).
%Vor%Dann können Sie die Informationen auf diese Weise erhalten:
%Vor%Hier ist eine Demo : Ссылка
%Vor%Hier ist die einfache und allgemeine Abfrage. Sie können das Ergebnis durch rekursive Abfrage erreichen. Überprüfen Sie die folgende Abfrage
%Vor%es wird definitiv für Sie arbeiten.
Tags und Links sql-server sql-server-2008 tsql