2013-06-20 13 views
5

Spesso nei rapporti di vendita e così via è necessario confrontare questo giorno per lo stesso giorno dell'anno scorso, ma in base allo stesso "giorno della settimana", non "giorno del mese".Come si trova lo stesso giorno della settimana l'anno scorso in SQL?

Così, ad esempio, oggi è il 20 giugno 2013 e un giovedì. Voglio vedere le vendite per oggi, rispetto allo stesso GIOVEDì dell'anno scorso (21 giugno 2012, rispetto al 20 giugno 2012, che era un mercoledì).

Come può essere fatto in T-SQL?

risposta

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)) 

Il risultato è:

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

Questa dovrebbe essere la risposta accettata, è perfetto e facile da leggere –

-1

dateadd ('giorno', - 364, @ ora) speranza Questo può aiutare a

Problemi correlati