powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как найти год+месяц в ms sql
6 сообщений из 6, страница 1 из 1
Как найти год+месяц в ms sql
    #39856769
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

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

очевидно, что у вас потерялся ведущий 0 из-за работы с цифрами
...
Рейтинг: 0 / 0
Как найти год+месяц в ms sql
    #39856775
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как найти год+месяц в ms sql
    #39856776
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как найти год+месяц в ms sql
    #39857127
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd,

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

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


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