【发布时间】:2015-01-06 01:57:56
【问题描述】:
我在数据库中有如下记录
ID RDate Name
1 1/1/2015 A
2 1/1/2015 B
3 31/12/2014 A
4 3/12/2014 A
5 22/10/2014 C
6 1/8/2014 D
我希望根据当前日期选择当前月份记录和最近 3 个月记录。
我有如下查询
Select * from tbl1 where month(RDate) = Month(getdate()) and Year(RDate) = Year(getdate())
这我可以得到当前月份的记录。我可以在查询下面得到上个月的记录使用情况
Select * from tbl1 where month(RDate) = Month(Dataadd(month, -1, RDate)) and Year(RefDate) = Year(DateAdd(year, -1, RDate))
问题是当当前月份是 2015 年 4 月时,我最近 3 个月的记录将是 2015 年 3 月、2015 年 2 月和 2015 年 1 月。对于年份的查询将不正确,因为查询中的年份为负 1。如何使查询动态化?
【问题讨论】:
标签: sql sql-server sql-server-2008