我的Test表中有3列,看起来像这样
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列实际上是日期数据类型。
Time列实际上是nvarchar(MAX)数据类型。
我不确定如何使用Combined列。
是否可以将两者一起添加,或者我必须转换时间,如果是,我该如何进行此转换?
我用过:
alter table [dbo].[Test] alter column [TIME] time(0)
并收到此错误消息:
Conversion failed when converting date and/or time from character string.
有没有人对我有任何见解,如果我甚至需要转换它?
答案 0 :(得分:2)
combined
列的数据类型应为datetime2
(或datetime
),因为它将保留。
您无法将varchar值添加到日期类型值,但要填充它,您可以将[date]
列强制转换为datetime
,并将带有时间部分的varchar字符串添加到它是这样的:
update dbo.test set combined = cast([date] as datetime) + [time] from dbo.test
然而,这依赖于[time]
列中的值有效,并且您获得的错误消息表明某些值不是,因此您需要首先识别并更正这些值
答案 1 :(得分:0)
用于显示尝试, 从测试中选择[日期] +''+时间作为CombinedColumn