Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Espressione SSIS per trovare il venerdì precedente

Funzionerà (puoi sostituire GETDATE() per @date , l'ho usato per testare facilmente date diverse)

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

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

AGGIORNAMENTO:qui è lo stesso, ma fatto in Espressione variabile SSIS:

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

AGGIORNAMENTO n. 2:ecco come restituire il venerdì precedente per QUALSIASI data, non solo il lunedì

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