Làm như thế này:
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()))
Giải thích:
-
datepart(dw, getdate())
sẽ trả về số ngày trong tuần hiện tại, từ 1 đến 7, bắt đầu bằng bất kỳ thứ gì bạn đã chỉ định bằng cách sử dụng ĐẶT LỊCH SỰ . -
dateadd(day, 1-datepart(dw, getdate()), getdate())
trừ số ngày cần thiết để đến đầu tuần hiện tại -
CONVERT(date,getdate())
được dùng để xóa phần thời gian của GETDATE () vì bạn muốn dữ liệu bắt đầu từ nửa đêm.