Gehen Sie folgendermaßen vor:
SET DATEFIRST 1 -- Define beginning of week as Monday
SELECT [...]
AND WorkDate >= dateadd(day, 1-datepart(dw, getdate()), CONVERT(date,getdate()))
AND WorkDate < dateadd(day, 8-datepart(dw, getdate()), CONVERT(date,getdate()))
Erklärung:
datepart(dw, getdate())
gibt die Zahl des Tages in der aktuellen Woche von 1 bis 7 zurück, beginnend mit dem, was Sie mit DATEFIRST EINSTELLEN .dateadd(day, 1-datepart(dw, getdate()), getdate())
subtrahiert die notwendige Anzahl an Tagen, um den Beginn der aktuellen Woche zu erreichenCONVERT(date,getdate())
wird verwendet, um den Zeitteil von GETDATE() zu entfernen, da die Daten um Mitternacht beginnen sollen.