SQL查询按日期减去1年

时间:2015-12-08 14:23:01

标签: sql sql-server date

我正在尝试运行查询以显示两个日期之间的结果,然后显示相同日期但一年前的结果。这就是我所拥有的 -

where (a.Invdate between '11/1/2015' and '11/30/2015')

最终将使用参数,因此它看起来像

where (a.Invdate between @StartDate and @EndDate)

但我希望能够使用相同的日期范围运行相同的查询,而不是11/1/201411/30/2014

我怎样才能实现这个目标?

1 个答案:

答案 0 :(得分:0)

DATEADD是执行此操作的最佳方式。你也可以使用日志方式解析每个日期部分:

convert(VARCHAR(2),datepart(mm,'11/30/2015')) + '/' + convert(VARCHAR(2),datepart(dd,'11/30/2015')) + '/' + convert(VARCHAR(4),convert(INTEGER,datepart(yy,'11/30/2015')) - 1) AS newDate

(我投票给你+因为你是新用户),请在下次发表问题时小心