Получение месяцев на основе ввода года - PullRequest
0 голосов
/ 27 сентября 2018

Как получить Все месяцы на основе ввода года только за март

Предположим: -Если год 2018, то мне нужно получить все месяцы, начиная с октября (следующий месяц с текущего месяца)только до апреля.

Поскольку эти значения мне нужно передать в sp, чтобы получить данные таблицы. Если год 2017, то мне нужны все месяцы.пожалуйста, помогите мне

1 Ответ

0 голосов
/ 27 сентября 2018

Может быть, запрос ниже поможет вам.

DECLARE @StartDateTime DATETIME
DECLARE @EndDateTime DATETIME
DECLARE @Year int= 2018     --Finanical year 
SET @StartDateTime = CAST(CAST(@Year AS VARCHAR(20))+'-04-01' as datetime)
SET @EndDateTime =  CAST(CAST(@Year+1 AS VARCHAR(20))+'-03-31' as datetime)
;WITH DateRange(Dates) AS 
(
SELECT @StartDateTime as Date
Union ALL
SELECT DATEADD(d,1,Dates)
FROM DateRange 
WHERE Dates < @EndDateTime
)
Select   distinct DateName( month , DateAdd( month , month(dates) , 0 ) - 1 ) as monthname
    ,year(dates) as year
    , month(dates) as monthnumber
from DateRange
where 
    (Year(GETDATE())=@Year AND  DATEADD(m, DATEDIFF(m, -1, getdate()), 0)<dates)
    OR
    (Year(GETDATE())<>@Year )
order by year(dates), month(dates)
OPTION (MAXRECURSION 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...