Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Формат даты в запросе  [new]
ypmail
Member

Откуда:
Сообщений: 331
Помогите в запросе привести даты к виду: '2016.01', '2016.02', '2016.03'...
Т.е. только год и через точку месяц цифрами 01, 02, 03.

Это выводит год и месяц словом:
DATENAME(yy,DateDoc)+'.'+DATENAME(mm,DateDoc)
, а надо месяц цифрами и обязательно 01, 02, 03
9 янв 16, 23:30    [18657345]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
convert(varchar(7), DateDoc, 102)
9 янв 16, 23:51    [18657447]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
Bator
Member

Откуда: Порт пяти морей
Сообщений: 439
ypmail,

если версия 2012+, то можно так:
select format(getdate(), 'yyyy.MM')
10 янв 16, 15:12    [18658560]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
ypmail
Member

Откуда:
Сообщений: 331
invm
convert(varchar(7), DateDoc, 102)


Спасибо, работает!

Bator
ypmail,

если версия 2012+, то можно так:
select format(getdate(), 'yyyy.MM')


К сожалению на версии 2008 не работает.
10 янв 16, 18:18    [18659099]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
ypmail
Member

Откуда:
Сообщений: 331
В описании varchar не нашёл вывод в формате mm.yyyy, т.е. наоборот '01.2016'
10 янв 16, 18:31    [18659139]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
ypmail
Member

Откуда:
Сообщений: 331
Пришлось городить:
convert(varchar(2),DateDoc, 101) +'.'+ convert(varchar(4),DateDoc, 102)

Как-то громоздко получилось, ещё и в группировку пришлось это выражение включать...
10 янв 16, 18:45    [18659183]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31442
ypmail
Пришлось городить:
convert(varchar(2),DateDoc, 101) +'.'+ convert(varchar(4),DateDoc, 102)


Как-то громоздко получилось, ещё и в группировку пришлось это выражение включать...

Вам же написали:
invm
convert(varchar(7), DateDoc, 102)

Нужно только номер формата заменить, и обрезать не справа, как сделал invm, а слева.
right(convert(varchar, DateDoc, 104), 7)
10 янв 16, 22:23    [18659908]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
ypmail
Member

Откуда:
Сообщений: 331
Спасибо!!! Работает!!!
Я только учусь...
11 янв 16, 19:48    [18664233]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
ypmail
Member

Откуда:
Сообщений: 331
На SQL2014 заработало это:
FORMAT(DateDoc, 'yyyy MMMM')

На 2008 не работало
14 янв 16, 16:04    [18679233]     Ответить | Цитировать Сообщить модератору
 Re: Формат даты в запросе  [new]
Glory
Member

Откуда:
Сообщений: 104760
ypmail
На 2008 не работало

Потому что от версии к версии язык может изменяться.
Поэтому хорошим тоном считается публикация версии вашего сервера в самом начале темы.
14 янв 16, 16:09    [18679257]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить