解析sql中的时间跨度字符串

解析sql中的时间跨度字符串,sql,sql-server,parsing,sql-server-2005,Sql,Sql Server,Parsing,Sql Server 2005,我正在从一个数据源中读取数据,该数据源以varchar格式为我提供时间,格式为d:h:m:s:f,日期部分始终为0,该列表示一天中的时间。我想将此列添加到我已有的日期时间 Entry_Date Entry_Time 3/3/2009 12:00:00 0:16:17:6:0 8/24/2011 12:00:00 0:8:39:18:0 9/4/2010 12:00:00 0:12:33:18:0 如果我使用C#,我只会执行TimeSpan.ParseExact,但我

我正在从一个数据源中读取数据,该数据源以varchar格式为我提供时间,格式为
d:h:m:s:f
,日期部分始终为0,该列表示一天中的时间。我想将此列添加到我已有的日期时间

Entry_Date          Entry_Time
3/3/2009 12:00:00   0:16:17:6:0
8/24/2011 12:00:00  0:8:39:18:0
9/4/2010 12:00:00   0:12:33:18:0
如果我使用C#,我只会执行
TimeSpan.ParseExact
,但我不知道如何用纯sql方式处理这个问题

我想转换为
time
,但我使用的是SQLServer2005,它没有
time
类型

如何将时间添加到相邻的日期时间?

如下所示:

select Entry_Date + cast(Entry_Time as datetime) combinedCol
from YourTable
这是一把小提琴:

享受吧


原始询问人备注:

SQL无法处理小数秒,但是可以将它们修剪掉,这样查询将被删除

select Entry_Date + cast(left(Entry_Time, len(Entry_Time) - 2) as datetime) combinedCol
from YourTable

你想将
Entry\u Date
Entry\u Time
合并为一个
DateTime
?@Magnus是的,这就是我想要的。这是我尝试的第一件事。它无法解析字符串“从字符串转换日期时间时转换失败”。问题是,您执行了d:h:m:s,我有d:h:m:s:f,但分数秒始终为零,因此我可以执行
转换(左(Entry\u Time,len(Entry\u Time)-2)作为日期时间)