将 varchar 转换为 datetime 并添加秒数

Convert varchar to datetime and add seconds

我有两列 startDate160812 - 年、月、日)和 startTime112345 - 小时、分钟、秒)和 varchar 数据类型我的目标是连接它们并将它们转换为 datetime。我应该向他们添加其他列 (duration - int)

我试过这样的事情:

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

但是我收到一条错误消息:

Msg 241, Level 16, State 1, Line 1
Conversion failed when converting date and/or time from character string.

有什么更好的想法可以尝试吗?

我想你想要这样的东西:

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