2017-01-06 84 views
0

我有startDate兩列(160812 - 年,月,日)和startTime112345 - 小時,mimutes,seconts)與varchar數據類型我的目標是將它們連接起來,並將其轉換成日期時間。而且,我也要加入到他們的其他列(duration - int將varchar轉換爲datetime,並添加秒

我想是這樣的:

WITH [A] AS 
(
    SELECT (startDate + startTime) AS time1 
    FROM [Date] 
) 
SELECT 
    CONVERT(datetime, A.time1, 20) 
FROM 
    [A] 

但是我得到一個錯誤信息:

消息241,級別16,狀態1,第1行
從字符串轉換日期和/或時間時轉換失敗。

任何更好的想法嘗試?

+1

[不良習慣踢:選擇了錯誤的數據類型(http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12 /bad-habits-to-kick-using-the-wrong-data-type.aspx) – Jamiec

回答

1

我想你想是這樣的:

select (convert(datetime, startDate, 12) + 
     convert(time, stuff(stuff(startTime, 5, 0, ':'), 3, 0, ':'))) 
     ) as dt