Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Expressão SSIS para encontrar sexta-feira anterior


Isso funcionará (você pode substituir GETDATE() para @date , eu apenas usei isso para testar facilmente datas diferentes)
DECLARE @date DATETIME
SET @date = '2013-01-14'

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

ATUALIZAÇÃO:Aqui está o mesmo, mas feito na expressão de variável SSIS:
DATEPART("dw", GETDATE()) != 2?
GETDATE():
DATEADD("dw", -3, GETDATE())

ATUALIZAÇÃO 2:Veja como retornar a sexta-feira anterior para QUALQUER data, não apenas segunda-feira
SELECT DATEADD(DAY, -1 - (DATEPART(weekday, @date) % 7), @date)