2016-06-18 4 views
-1

У меня есть дата в следующем формате в моей БД.Преобразование даты в SQL

10/16 - mm/yy

Мне нужно, чтобы преобразовать его в:

October/16

Возможно ли это?

Если это невозможно, пожалуйста, сообщите мне, почему.

+0

Возможно, знание базы данных поможет нам! –

+0

Что [тег: rdbms] вы используете? – Mureinik

+0

Я использую SQL Server 2014. – JiLaBaJi

ответ

1

Это не дата, ее нет в день, это плохой способ хранить год/месяц. Для предотвращения путаницы должен быть 4-значный год, и год должен быть указан первым, чтобы обеспечить правильную сортировку, например. '2016/10' или числовое значение 201610.

Вы можете привести его к DATE первым, а затем использовать FORMAT для Disply только месяц/год:

set dateformat myd; 
select format(cast(mystupidcolumn + '/1' as date), 'MMMM/yy') 

Или SubStr в месяц часть и использовать случай.

0

Да, вы можете, и это зависит в том, что база данных используется для вызова даты функции Если столбец формата Datetime

  • SQL сервер базы данных DATENAME(Month, GETDATE())
  • MySQL MONTHNAME(now())

иначе новообращенный он будет по вашему выбору в базе данных или логике кода разделить значение и поиск в месяц enum или подделать da те, которые будут приняты и полный формат даты, как 01/10/16

так что-то вроде SELECT DATENAME(Month, datecolumn) + '/' + YEAR (datecolumn)

также можно использовать вместо Year функции DATEPART(yy,datecolumn) , как вы делаете это с форматом будет выглядеть CONVERT(VARCHAR(11),GETDATE(),106) но освобожденный, чтобы получить первые 3 месяца голец JUN

+0

Пожалуйста, смотрите мой формат даты .. – JiLaBaJi

+0

Я обновил ответ, надеюсь, что эта помощь больше, обратите внимание, что не использовать функцию формата даты –

+0

Ошибка конверсии при преобразовании даты и/или времени из символьной строки. Я думаю, что эта ошибка для формата даты имеет только две части. – JiLaBaJi

0

попробовать этот формат,

SELECT DATENAME(month, DATEADD(month, @mydate-1, CAST('2008-01-01' AS datetime))) 
0

Вы можете отображать дату, используя этот код

select datename(month, YourColumnName) + '/' + right(YEAR(YourColumnName),2) 
FROM yourTableName 

Просто измените yourColumnName с именем вашего столбца таблицы и yourTableName с именем таблицы.

+0

Я получаю это преобразование неудавшимся при преобразовании даты и/или времени из ошибки строки символов. – JiLaBaJi

+0

Обратите внимание на свой формат даты .. – JiLaBaJi

Смежные вопросы