sql >> Databasteknik >  >> RDS >> Sqlserver

SSIS uttryck att hitta föregående fredag

Kommer detta att fungera (du kan ersätta GETDATE() för @date , jag använde det bara för att enkelt testa olika datum)

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

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

UPPDATERING:Här är samma, men gjort i SSIS Variable Expression:

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

UPPDATERING #2:Så här returnerar du föregående fredag ​​för ALLA datum, inte bara måndag

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



  1. Hoppa över WHERE-satsen om variabeln för den satsen är null

  2. Mysql Välj ömsesidiga par av poster, utan dubbletter

  3. RODBC sqlSave problem med att skapa tabeller

  4. Hur uppdaterar man värden för en tabellkolumn med en annan tabells kolumnvärden?