获得最后3个月的日期选择

时间:2016-08-22 11:21:48

标签: sql-server date datepicker

我在form.aspx上有datepicker来自日期和时间到目前为止我想要从日期选择器中选择日期然后我想要在datepicker选择的基础上最后3个月的记录,即如果我从DEC选择日期,那么最后3个月的记录显示

我试试这个

ALTER PROCEDURE [dbo].[SPMONTH]
@fromdate datetime,
@todate datetime
AS

select DATENAME(MONTH,tblReg.StartDate) AS [Month]
from tblReg
where
tblReg.StartDate>=DATEADD(MONTH,-3,GETDATE())
AND tblReg.EndDate<=GETDATE()
GROUP BY 
DATENAME(MONTH,tblReg.StartDate) 

当我执行此

[SPMONTH] '2016-01-01 00:00:00', '2016-01-30 23:59:59'

结果

Month
August
July
June
May

上面的sp工作,但是当我从aug选择日期然后这显示最后3个月和当前月,而当我从jan或另一个月选择日期然后这显示7月,6月和可能数据,而我想要当我选择jan或任何其他月份假设我选择了jan然后想要dec,nov,oct和jan

1 个答案:

答案 0 :(得分:1)

您未在查询中使用传递参数,例如@fromdate@todate未在查询中使用,请在where子句中使用此参数,如下所示

select DATENAME(MONTH,tblReg.StartDate) AS [Month]
from tblReg
where
tblReg.StartDate>=DATEADD(MONTH,-3, @fromdate)
AND tblReg.EndDate<= @todate
GROUP BY 
DATENAME(MONTH,tblReg.StartDate)