多くの場合、売上レポートなどでは、この日を昨年の同じ日と比較する必要がありますが、「月の日」ではなく、同じ「平日」に基づいています。昨年の同じ曜日をSQLでどのように見つけるか?
たとえば、今日は2013年6月20日と木曜日です。私は今日の売上高を、昨年の同じ曜日(2010年6月21日、2012年6月20日は水曜日)と比べて見たいと思っています。
これはどのようにT-SQLで行うことができますか?
多くの場合、売上レポートなどでは、この日を昨年の同じ日と比較する必要がありますが、「月の日」ではなく、同じ「平日」に基づいています。昨年の同じ曜日をSQLでどのように見つけるか?
たとえば、今日は2013年6月20日と木曜日です。私は今日の売上高を、昨年の同じ曜日(2010年6月21日、2012年6月20日は水曜日)と比べて見たいと思っています。
これはどのようにT-SQLで行うことができますか?
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
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)
DATEADD( '日'、 - 364、今@)これはあなた
を助けることができる 希望これが受け入れ答えである必要があり、それはです完璧で読みやすい –