2013-06-20 28 views
5

多くの場合、売上レポートなどでは、この日を昨年の同じ日と比較する必要がありますが、「月の日」ではなく、同じ「平日」に基づいています。昨年の同じ曜日をSQLでどのように見つけるか?

たとえば、今日は2013年6月20日と木曜日です。私は今日の売上高を、昨年の同じ曜日(2010年6月21日、2012年6月20日は水曜日)と比べて見たいと思っています。

これはどのようにT-SQLで行うことができますか?

答えて

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

結果は次のとおりです。

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

を助けることができる 希望これが受け入れ答えである必要があり、それはです完璧で読みやすい –

-1

DATEADD( '日'、 - 364、今@)これはあなた

関連する問題