2013-06-20 9 views
5

Często w raportach sprzedaży i tak trzeba porównać ten dzień z tym samym dniem w zeszłym roku, ale w oparciu o ten sam "dzień tygodnia", a nie "dzień miesiąca".Jak znaleźć ten sam dzień powszedni w zeszłym roku w SQL?

Na przykład dzisiaj jest 20 czerwca 2013 r. I czwartek. Chcę zobaczyć sprzedaż na dziś, w porównaniu do tego samego CZWARTEK w zeszłym roku (21 czerwca 2012 r., W przeciwieństwie do 20 czerwca 2012 r., Który był środa).

Jak to zrobić w T-SQL?

Odpowiedz

0
DECLARE @now DateTime 
SET @now = '2013-06-20' -- you could say GETDATE() 
SELECT DATEADD(day, (DATEPART(week, @now) * 7 + DATEPART(weekday, @now)) - (DATEPART(week, DATEADD(year, -1, @now)) * 7 + DATEPART(weekday, DATEADD(year, -1, @now))), DATEADD(year, -1, @now)) 

Wynikiem jest:

2012-06-21 00:00:00.000 
12
DECLARE @now Date 
SET @now = '2013-06-20' -- your example 
SELECT DATEADD(week, -52, @now) 

SET @now = '2012-06-21' -- leap year test 
SELECT DATEADD(week, -52, @now) 
+1

To powinno być zaakceptowane odpowiedź, to idealny i łatwy do odczytania –

-1

DateAdd ('dzień', - 364, @ teraz) nadziei, może to pomóc

Powiązane problemy