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.