在当月之前6个月捕获记录

时间:2014-11-11 14:26:20

标签: sql sql-server-2008

我正在处理日期被声明为整数的查询,这意味着收入报告可以记录x个月/年的最后6个月。所以用户输入说的是10(oct),2014。我想要的是它要回到6个月(10-6)并显示该范围内的所有记录。我认为它会像csr.csrdatepulled> = dateadd(mm,-6。@ month) - 但我不认为这是有效的,因为它们是整数。现在它只捕获那个月,但不是中间。是否有办法将月份和年份声明为整数?在此先感谢,这是一个精简的查询 -

declare
 @Month int,
 @Year int

Set @Month = 10
Set @Year = 2014

select csr.csrdatepulled


from   CustomServicesForRevenue csr
where DatePart(MM,csr.CsrDatePulled) = @Month and DatePart(yyyy,csr.CsrDatePulled) = @Year

order by csr.CsrDAtepulled desc

1 个答案:

答案 0 :(得分:0)

构建一个完整的日期(月份和年份的第1天)扣除6个月并获取> =到它的行

WHERE 
csr.CsrDatePulled >= DATEADD(MONTH, @MONTH - 1 - 6, DATEADD(YEAR, @YEAR - 1900, 0))