Направете го така:
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()))
Обяснение:
datepart(dw, getdate())
ще върне номера на деня в текущата седмица от 1 до 7, започвайки с това, което сте посочили с помощта на ЗАДАВА ПЪРВА ДАТА .dateadd(day, 1-datepart(dw, getdate()), getdate())
изважда необходимия брой дни, за да стигне до началото на текущата седмицаCONVERT(date,getdate())
се използва за премахване на времевата част на GETDATE(), защото искате данните да започват в полунощ.