これは機能しますか (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())
UPDATE #2:月曜日だけでなく、任意の日付の前の金曜日を返す方法は次のとおりです
SELECT DATEADD(DAY, -1 - (DATEPART(weekday, @date) % 7), @date)