Ще работи ли това (можете да замените GETDATE()
за @date
, току-що го използвах, за да тествам лесно различни дати)
DECLARE @date DATETIME
SET @date = '2013-01-14'
SELECT
PrevFriday = CASE WHEN DATEPART(weekday, @date) <> 2 THEN @date
ELSE DATEADD(DAY, -3, @date)
END
АКТУАЛИЗАЦИЯ:Тук е същото, но направено в SSIS променлив израз:
DATEPART("dw", GETDATE()) != 2?
GETDATE():
DATEADD("dw", -3, GETDATE())
АКТУАЛИЗАЦИЯ №2:Ето как да върнете предишния петък за ВСЯКА дата, не само за понеделник
SELECT DATEADD(DAY, -1 - (DATEPART(weekday, @date) % 7), @date)