Fallo in questo modo:
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()))
Spiegazione:
datepart(dw, getdate())restituirà il numero del giorno della settimana corrente, da 1 a 7, iniziando da quello che hai specificato usando IMPOSTA PRIMA DATA .dateadd(day, 1-datepart(dw, getdate()), getdate())sottrae il numero di giorni necessario per raggiungere l'inizio della settimana in corsoCONVERT(date,getdate())viene utilizzato per rimuovere la parte temporale di GETDATE(), perché desideri che i dati inizino a mezzanotte.