Điều này có hoạt động không (bạn có thể thay thế GETDATE()
cho @date
, Tôi chỉ sử dụng nó để dễ dàng kiểm tra các ngày khác nhau)
DECLARE @date DATETIME
SET @date = '2013-01-14'
SELECT
PrevFriday = CASE WHEN DATEPART(weekday, @date) <> 2 THEN @date
ELSE DATEADD(DAY, -3, @date)
END
CẬP NHẬT:Ở đây cũng tương tự, nhưng được thực hiện trong Biểu thức biến SSIS:
DATEPART("dw", GETDATE()) != 2?
GETDATE():
DATEADD("dw", -3, GETDATE())
CẬP NHẬT # 2:Đây là cách quay lại Thứ Sáu trước đó cho BẤT KỲ ngày nào, không chỉ Thứ Hai
SELECT DATEADD(DAY, -1 - (DATEPART(weekday, @date) % 7), @date)