2016-08-22 2 views
1

У меня есть datepicker on form.aspx fromdate & на сегодняшний день я хочу, когда я выбираю дату с даты выбора, тогда я хочу последнюю запись за 3 месяца по основному выбору даты, т. Е. Если я выбираю дату из DEC то последний 3 месяца запись дисплейполучить последние 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 

выше зр работает, но когда я выбрать дату с августа, то это шоу за последние 3 месяца и текущего месяца, тогда как при выборе даты с января или другой месяц, то это показывает, июль, июнь и может данные в то время как я хочу, когда я выбираю январе или любой другой месяц предположит, я выбираю джан, то хочу Декабрь, ноябрь, октябрь и январь

+0

Вы не передадите дату в SQL. Если «@RegNo» не должен содержать дату (в этом случае ей нужно лучшее имя!). Но даже тогда @RegNo никогда не используется в самой процедуре. Итак, как вы можете ожидать, что он будет динамически настраиваться на выбранное вами значение, если вы не передадите это значение в свой код? – ADyson

+0

Обновление @ADyson check – user6628729

+0

У вас есть 2 переменные ('@ fromdate',' @ todate') и где они используются в запросе? – gofr1

ответ

1

Вы не используете передачи параметров в запросе, т.е. @fromdate и @todate не используется в запросе, использовать эти параметры в том, где положении, как показано ниже

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) 
+0

я попробовать это, но это также апрель месяц Месяц апреля декабря января ноября октября – user6628729

+0

Я довольно уверен, где условие это будет дает последние три месяца данные, вы можете проверить формат даты прохождения обоих параметров –

+0

даты и времени одно и то тип – user6628729

Смежные вопросы