Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SSIS-Ausdruck, um den vorherigen Freitag zu finden

Funktioniert das (Sie können GETDATE() ersetzen für @date , ich habe das nur verwendet, um einfach verschiedene Daten zu testen)

DECLARE @date DATETIME
SET @date = '2013-01-14'

SELECT
    PrevFriday = CASE WHEN DATEPART(weekday, @date) <> 2 THEN @date
                      ELSE DATEADD(DAY, -3, @date)
                 END

UPDATE:Hier ist dasselbe, aber im SSIS-Variablenausdruck:

DATEPART("dw", GETDATE()) != 2?
GETDATE():
DATEADD("dw", -3, GETDATE())

UPDATE Nr. 2:So geben Sie den vorherigen Freitag für JEDES Datum zurück, nicht nur für Montag

SELECT DATEADD(DAY, -1 - (DATEPART(weekday, @date) % 7), @date)