Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как найти год+месяц в ms sql / 6 сообщений из 6, страница 1 из 1
03.09.2019, 17:15
    #39856769
Romanov-krd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти год+месяц в ms sql
нужно найти предыдущий месяц в формате 201908 из int -201909
пишу функцию
Код: sql
1.
2.
concat(year(dateadd (month,-1,cast(201909 as varchar(10)) +'01') ) /*находим предыдущий месяц*/
 , month(dateadd (month,-1,cast(201909 as varchar(10)) +'01') ))



но получается в итоге 20198, но если стоит к примеру 201912 то получается как и надо 201911

как тут доработать запрос чтобы получить корректный результат?
...
Рейтинг: 0 / 0
03.09.2019, 17:19
    #39856773
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти год+месяц в ms sql
Romanov-krd,

очевидно, что у вас потерялся ведущий 0 из-за работы с цифрами
...
Рейтинг: 0 / 0
03.09.2019, 17:21
    #39856775
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти год+месяц в ms sql
Romanov-krdнужно найти предыдущий месяц в формате 201908 из int -201909
пишу функцию
Код: sql
1.
2.
concat(year(dateadd (month,-1,cast(201909 as varchar(10)) +'01') ) /*находим предыдущий месяц*/
 , month(dateadd (month,-1,cast(201909 as varchar(10)) +'01') ))



но получается в итоге 20198, но если стоит к примеру 201912 то получается как и надо 201911

как тут доработать запрос чтобы получить корректный результат?


select format(dateadd (month,-1,cast(201909 as varchar(10)) +'01') ,'yyyyMM')
...
Рейтинг: 0 / 0
03.09.2019, 17:21
    #39856776
Focha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти год+месяц в ms sql
Romanov-krdнужно найти предыдущий месяц в формате 201908 из int -201909
пишу функцию
Код: sql
1.
2.
concat(year(dateadd (month,-1,cast(201909 as varchar(10)) +'01') ) /*находим предыдущий месяц*/
 , month(dateadd (month,-1,cast(201909 as varchar(10)) +'01') ))



но получается в итоге 20198, но если стоит к примеру 201912 то получается как и надо 201911

как тут доработать запрос чтобы получить корректный результат?


Код: sql
1.
select format(dateadd (month,-1,cast(201909 as varchar(10)) +'01') ,'yyyyMM')
...
Рейтинг: 0 / 0
04.09.2019, 13:07
    #39857127
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти год+месяц в ms sql
Romanov-krd,

Код: sql
1.
2.
3.
DECLARE @d INT = 201909

SELECT DATEADD(month, -1, DATEFROMPARTS(@d/100, @d % 100, 1))
...
Рейтинг: 0 / 0
04.09.2019, 15:15
    #39857249
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как найти год+месяц в ms sql
Код: sql
1.
SELECT CONVERT(CHAR(6),DATEADD(MONTH,-1,STR(201909*100+1)),112)
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как найти год+месяц в ms sql / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]