6

通常在销售报告等中,您需要将这一天与去年的同一天进行比较,但基于相同的“工作日”,而不是“月中的某天”。

例如,今天是 2013 年 6 月 20 日和星期四。我想查看今天的销售额,而不是去年的同一个星期四(2012 年 6 月 21 日,而不是 2012 年 6 月 20 日是星期三)。

这如何在 T-SQL 中完成?

4

3 回答 3

23
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)
于 2013-06-20T14:00:39.743 回答
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
于 2013-06-20T13:47:48.770 回答
-2

dateadd('day',-364,@now) 希望对你有帮助

于 2017-01-13T19:10:13.427 回答