SQL выберите предыдущие 12 месяцев на основе даты
Я пытаюсь получить список предыдущих 12 месяцев с любым вводом даты в формате varchar so (201404 будет апрель 2014 года) и верну список всех месяцев до 201305 года.
На данный момент у меня есть следующее, Но это приносит следующие 12 месяцев, мне нужны предыдущие 12 месяцев в формате 201404.
DECLARE @Today DATETIME , @nMonths TINYINT SET @Today = GETDATE() SET @nMonths = 12 SELECT SUBSTRING( DATENAME(MONTH, DATEADD(dd, -1, DATEADD(month, n.n + DATEDIFF(month, 0, @Today), 0))), 1, 3) + CAST(YEAR(DATEADD(dd, -1, DATEADD(month , n.n + DATEDIFF(month, 0, @Today) -1 , 0))) AS VARCHAR(4)) AS EndDateOP FROM ( SELECT TOP ( @nMonths )n = ROW_NUMBER() OVER ( ORDER BY NAME ) FROM master.dbo.syscolumns ) n ORDER BY 1 DESC
F-ES Sitecore
Если вы хотите вычесть месяцы, то добавьте -12
Miss R
Где и зачем нам это делать?
jaket-cp
вы можете поиграть с @сегодня.SET @Today = DATEADD(month, -12, GETDATE())
Miss R
Спасибо. Все работает нормально, но январь должен быть Янв2015, но он выбрасывает Янв2014. Как это исправить?