2016-11-23 3 views
0

Я создаю таблицу со столбцами:Конвертирования дата не работает

ID | FirstName | LastName | DOB 

Я тогда заселять эти столбцы с данными из разных таблиц 2

INSERT INTO ClientData( 
FirstName, 
LastName, 
DOB) SELECT FirstName, 
      LastName, 
      BirthDate 
     FROM Table1 
     LEFT JOIN Table2 ON Table1.ID=Table2.ID 

В Table2 дате рождения в формате:

1990-01-01 

Но я хотел бы его в формате:

01-Jan-1990 

Я использовал оператор Update перед вставкой заявления

UPDATE ClientData 
SET DOB = CONVERT(VARCHAR(11), DOB, 106) 

Однако это не выйдет в этом формате в итоговой таблице. Любая помощь будет оценена по достоинству.

+1

Колонка типа данных ? – jarlh

+0

Каков тип поля BirthDate в таблице2? –

+0

'exec sp_columns ClientData' - это' DOB' строка какой-либо случайно? –

ответ

0

попытка FORMAT вместо CONVERT

FORMAT (value, format [, culture ]) 

Пример

FORMAT (BirthDate, 'your pattern', 'en-US') 
0

, как @Shnugo упоминалось в комментарии. Ваш запрос в порядке, просто измените свою схему и никогда не храните дату в виде строки. всегда используйте DateTime DATATYPE для обеих таблиц table1 и table2 и просто конвертировать DataTime в стороне клиента, приложение пользовательского интерфейса и т.д.

0

первую очередь CAST, что столбец DateTime затем преобразовать его в VARCHAR:

 UPDATE ClientData 
     SET DOB = CONVERT(VARCHAR(11), cast(DOB as datetime), 106) 
Смежные вопросы