Faites comme ceci :
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()))
Explication :
datepart(dw, getdate())renverra le numéro du jour de la semaine en cours, de 1 à 7, en commençant par ce que vous avez spécifié en utilisant DÉFINIR LA PREMIÈRE DATE .dateadd(day, 1-datepart(dw, getdate()), getdate())soustrait le nombre de jours nécessaire pour arriver au début de la semaine en coursCONVERT(date,getdate())est utilisé pour supprimer la partie heure de GETDATE(), car vous voulez que les données commencent à minuit.