Lakukan seperti ini:
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()))
Penjelasan:
datepart(dw, getdate())
akan mengembalikan nomor hari dalam minggu ini, dari 1 hingga 7, dimulai dengan apa pun yang Anda tentukan menggunakan SETEL TANGGAL PERTAMA .dateadd(day, 1-datepart(dw, getdate()), getdate())
kurangi jumlah hari yang diperlukan untuk mencapai awal minggu iniCONVERT(date,getdate())
digunakan untuk menghapus bagian waktu GETDATE(), karena Anda ingin data dimulai pada tengah malam.