2016-03-17 157 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但它爲我工作。我不知道爲什麼 –