sql >> Base de Datos >  >> RDS >> Sqlserver

Expresión SSIS para encontrar el viernes anterior

¿Funcionará esto (puede sustituir GETDATE() para @date , solo lo usé para probar fácilmente diferentes fechas)

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

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

ACTUALIZACIÓN:Aquí es lo mismo, pero hecho en SSIS Variable Expression:

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

ACTUALIZACIÓN n.° 2:aquí se muestra cómo regresar el viernes anterior para CUALQUIER fecha, no solo el lunes

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