powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вывести предыдущий месяц в формате 201812
10 сообщений из 10, страница 1 из 1
Как вывести предыдущий месяц в формате 201812
    #39848656
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно вывести предыдущий месяц в таком формате 201812, если функцию dateadd использовать то разумеется неправильно считает.
Код: sql
1.
select dateadd (month,-1,201901) 



результат =2452-09-14 00:00:00.000 а нужен 201812
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848658
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd,

select dateadd (month,-1,201901*100+1)
select case when 201901 %100 =1 then (201901/100-1)*100+12 else 201901-1 end
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848659
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первый нерабочий:
select dateadd (month,-1,cast(201901 as varchar(10)) +'01')
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848672
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krdНужно вывести предыдущий месяц в таком формате 201812, если функцию dateadd использовать то разумеется неправильно считает.
Код: sql
1.
select dateadd (month,-1,201901) 




результат =2452-09-14 00:00:00.000 а нужен 201812Потому что 201901 - это целое число.
При преобразованию в дату получается 1 января 1900 года + 201901 дней.
Число 201901 надо задавать в одинарных кавычках (как строку) - '201901'
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848675
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapRomanov-krdНужно вывести предыдущий месяц в таком формате 201812, если функцию dateadd использовать то разумеется неправильно считает.
Код: sql
1.
select dateadd (month,-1,201901) 





результат =2452-09-14 00:00:00.000 а нужен 201812Потому что 201901 - это целое число.
При преобразованию в дату получается 1 января 1900 года + 201901 дней.
Число 201901 надо задавать в одинарных кавычках (как строку) - '201901'Ой! Прошу прощения! Надо же и число там задать: '201901 01 '

Хотя, для первого января можно указывать только 4 цифры года. Но это только для 1 января!
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848680
Romanov-krd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kopelly,

да. там в первом случае формат такой получается 2018-12-01 00:00:00.000
а нужен 201812

а без кейсов как нибудь можно? вот в терадате норм функция есть
ADD_MONTHS_ID ( 201901 , -1) которая все возвращает а в ms sql найти такую не могу
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848706
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Romanov-krd,
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
create function add_months_id(@dt int, @incr int)
returns int
as 
begin 
  return cast(convert(varchar(6),dateadd(month,@incr,cast(@dt as varchar(20))+'01'),112)as int)	
end

select dbo.add_months_id(201901,-1)
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848708
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
select format(dateadd(month,-1,'20190101'),'yyyyMM') 
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848732
Kopelly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krdда. там в первом случае формат такой получается 2018-12-01 00:00:00.000
а нужен 201812

100*Year(dateadd())+Month(dateadd())
...
Рейтинг: 0 / 0
Как вывести предыдущий месяц в формате 201812
    #39848745
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Romanov-krd,

Код: sql
1.
select convert(char(6), dateadd(month, -1, getdate()), 112);
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как вывести предыдущий месяц в формате 201812
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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