2016-03-17 199 views
0

我在SQL Server中串联2列,它们都具有的datetime数据类型:转换日期时间日期和时间仅

UPDATE dbo.Feban_stg 
SET [Date & Time Posted] = CONCAT(CONVERT(VARCHAR(10), [Date Posted], 110), RIGHT(CONVERT(varchar, [Time Posted], 100), 7)) 

,到目前为止,我总是得到这个错误

转换从字符串转换日期和/或时间时失败。

date的数据类型&发布的时间也是datetime。

谢谢

+0

将您的更新转换为select首先查看您的concat实际创建的内容。可能输出不是在SQL服务器上使用的文化特定日期时间格式。 –

+0

1900-01-01 17:30:00.000 1900-01-01 17:34:00.000 1900-01-01 18:06:00.000 @ JennyO'Reilly这是输出 –

+0

请,提供的样品'dbo.Feban_stg'表。 – gofr1

回答

2

问题是日期部分和时间部分之间没有空格。 CANCAT只是添加字符串。试试这个:

UPDATE dbo.Feban_stg 
SET [Date & Time Posted] = CONCAT(CONVERT(VARCHAR(10), [Date Posted], 110), ' ', RIGHT(CONVERT(varchar, [Time Posted], 100), 8)) 

另外,你需要8个而不是7个在RIGHT函数中才能获得完整的小时。

+0

omg。它为我工作!非常感谢! :) –

+0

这很奇怪,因为在@christinaG发布的示例中,日期和时间部分之间有空格。 –

+0

@ JennyO'Reilly但它为我工作。我不知道为什么 –