Вопрос:

SQL Server Дата преобразования вопросы

sql-server

28 просмотра

1 ответ

6 Репутация автора

У меня есть таблица с датами в этом формате. YYYYDDD

Мне нужно конвертировать их в формат ГГГГ-ММ

Например, у меня есть свидание, 2016003так что это должно стать 2016-01.

Аналогично, дата 2016055должна стать2016-02

Есть ли способ отобразить их без создания пользовательской функции?

Спасибо

Автор: Hassan Tariq Источник Размещён: 22.08.2016 09:20

Ответы (1)


3 плюса

876751 Репутация автора

Я думаю, что самый простой способ - добавить дни в начало года. Итак, чтобы получить дату:

select dateadd(day, cast(right(col, 3) as int) - 1,
               cast(left(col, 4) + '01-01' as date)
              ) as dte

Затем вы можете отформатировать его, как вы хотите. Например, в SQL Server 2012+ вы можете использовать format():

select format(dateadd(day, cast(right(col, 3) as int) - 1,
                      cast(left(col, 4) + '01-01' as date)
                     ), 'YYYYMM'
              ) as yyyymm
Автор: Gordon Linoff Размещён: 22.08.2016 09:23
Вопросы из категории :
32x32