2017-01-06 36 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