【发布时间】:2016-12-28 22:17:22
【问题描述】:
我在 form.aspx fromdate 和 to date 上有 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 有效,但是当我从 8 月选择日期时,此显示过去 3 个月和当前月份,而当我从 1 月或另一个月选择日期时,则显示 7 月、6 月和可能的数据,而当我选择 1 月或任何时,我想要其他月份假设我选择 jan 然后想要 dec、nov、oct 和 jan
【问题讨论】:
-
您没有将日期传递给 SQL。除非“@RegNo”应该保存日期(在这种情况下,它需要一个更好的名称!)。但即便如此,@RegNo 也从未在过程本身中使用过。那么,如果您没有将值传递到代码中,您怎么能期望它动态调整到您选择的值呢?
-
@ADyson 检查更新
-
你有 2 个变量(
@fromdate,@todate),它们在查询中用在哪里? -
哪个日期前 3 个月? “fromdate”前 3 个月,或“todate”前 3 个月。或者你想返回两个日期之间的所有月份?目前还不是很清楚你在期待什么。
标签: sql-server date datepicker