MS SQL-Server

Knowledge Base

MS SQL-Server > Lösungen, Rezepte, Tipps, Fragen

Aktuellen Wochentag berechnen

--SET DATEFIRST 7 -- Ersten Tag der Woche festlegen (davon hängt DATEPART(weekday) ab)
-- 1 = Montag
-- 2 = Dienstag
-- 3 = Mittwoch
-- 4 = Donnerstag
-- 5 = Freitag
-- 6 = Samstag
-- 7 = Sonntag (Default bei EN-US)
SELECT @@DATEFIRST
SELECT DATEPART(weekday, GETDATE())
 
-- Berechne ein von @@DATEFIRST unabhängiges Ergebnis - liefert immer:
-- 1 = Montag
-- 2 = Dienstag
-- 3 = Mittwoch
-- 4 = Donnerstag
-- 5 = Freitag
-- 6 = Samstag
-- 7 = Sonntag
DECLARE @IndependentDayOfWeek INT;
SET @IndependentDayOfWeek = (@@DATEFIRST + DATEPART(weekday, GETDATE()) - 1) % 7;
SET @IndependentDayOfWeek = CASE WHEN @IndependentDayOfWeek = 0 THEN 7 ELSE @IndependentDayOfWeek END; -- Sonntag ist 0 bei der obigen Berechnung und wird auf die SQL interne Nummer umgestellt
SELECT @IndependentDayOfWeek;