Faça isso deste 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()))
Explicação:
datepart(dw, getdate())
retornará o número do dia na semana atual, de 1 a 7, começando com o que você especificou usando DEFINIR DATAFIRST .dateadd(day, 1-datepart(dw, getdate()), getdate())
subtrai o número necessário de dias para chegar ao início da semana atualCONVERT(date,getdate())
é usado para remover a parte da hora de GETDATE(), porque você deseja que os dados comecem à meia-noite.