2015-11-09 5 views
1

У меня есть 3 колонки в моей тестовой таблицы, которые выглядят как этотДобавление столбца даты и столбец NVARCHAR вместе

DATE  TIME  Combined 
2015-08-17 16:07:49 
2015-08-18 08:13:23 
2015-08-18 08:13:24 
2015-08-18 08:14:36 

То, что я хочу сделать, это объединить столбец даты и времени для заполнения Комбинированный столбец

Столбец DATE на самом деле является типом данных даты.

Столбец времени фактически является типом данных nvarchar (MAX).

Я не совсем уверен, что использовать для комбинированной колонки.

Можно ли добавить два вместе, как они есть, или мне нужно преобразовать время, и если да, то как это сделать?

Я использовал:

alter table [dbo].[Test] alter column [TIME] time(0) 

и получили это сообщение об ошибке:

Conversion failed when converting date and/or time from character string. 

Есть ли у кого есть какие-либо знания для меня на это, и если я даже нужно преобразовать его?

+1

Вы, вероятно, имеют недопустимое значение где-то – Amit

+0

Если его столбец TIME не будет ли он установлен по умолчанию до 00:00:00? –

+0

Нет. Он должен иметь действительное, конвертируемое значение. – Amit

ответ

2

Тип данных для колонки combined должен быть datetime2 (или datetime), так как он будет удерживать.

Вы не можете добавить значение VARCHAR к значению типа даты, но для его заполнения вы можете бросить [date] столбец в datetime и добавьте строку VARCHAR с временной части к нему, как это:

update dbo.test set combined = cast([date] as datetime) + [time] from dbo.test 

Однако это зависит от значений в столбце [time], и сообщение об ошибке, которое вы получаете, указывает на то, что некоторые значения не указаны, поэтому вам необходимо сначала определить и исправить эти значения.

Example SQL Fiddle

0

для отображения попытки, выберите [Date] +» '+ время как CombinedColumn из теста

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