Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Expression SSIS à trouver le vendredi précédent

Cela fonctionnera-t-il (vous pouvez remplacer GETDATE() pour @date , je l'ai juste utilisé pour tester facilement différentes dates)

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

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

MISE À JOUR :Voici la même chose, mais effectuée dans l'expression variable SSIS :

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

MISE À JOUR #2 :Voici comment revenir au vendredi précédent pour TOUTE date, pas seulement le lundi

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