Sql server 将日期和时间的单独varchar值连接到单个字段中的完整日期时间

Sql server 将日期和时间的单独varchar值连接到单个字段中的完整日期时间,sql-server,datetime,concatenation,varchar,Sql Server,Datetime,Concatenation,Varchar,也许我的问题太复杂了,或者我只是措辞不恰当,但我很难找到答案。我将尽可能简短明了 我在SQLServer2005中有两个单独的表,每个表都通过单独的应用程序更新。由于这些应用程序的限制,表的构建方式完全不同。在表A中,订单的日期和时间存储为108格式的日期时间(即14/11/2013 08:15:00)。在表B中,这些值由插入它们的触发器自动分割。它们被划分为VARCHAR类型的单独字段(即Day='14/11/2013'和HourFrom='0815') 不幸的是,这些参数超出了我的控制范围。

也许我的问题太复杂了,或者我只是措辞不恰当,但我很难找到答案。我将尽可能简短明了

我在SQLServer2005中有两个单独的表,每个表都通过单独的应用程序更新。由于这些应用程序的限制,表的构建方式完全不同。在表A中,订单的日期和时间存储为108格式的日期时间(即14/11/2013 08:15:00)。在表B中,这些值由插入它们的触发器自动分割。它们被划分为VARCHAR类型的单独字段(即Day='14/11/2013'和HourFrom='0815')

不幸的是,这些参数超出了我的控制范围。如果我尝试以不同于SQL端的方式格式化任一表,两个应用程序都将失败。(不要让我开始…)

我的基本问题是:当执行订单的驱动程序更新表B时,新值需要从表B更新到表A中。例如,如果订单是从08:15到09:00写入表A的,但驱动程序实际上是在08:30提取的,并且只在09:15完成运行,表A中的时间必须根据驾驶员插入表B中的新值进行更新

我的问题是,我很难从表B中获取VARCHAR值,在时间中插入冒号,以便转换函数能够接受它们,将它们与day字段连接起来,然后将整个值更新到表a中。我收到很多错误,告诉我转换失败的各种方式,所以我不打算把它们全部列出。如果有一种快速、干净的方法来进行这种转换,我还没有找到。任何帮助都将不胜感激

我是SQL新手,我想这就是为什么我残忍的上司把这个项目强加给我的原因;我学得很快,但像这样的时刻很令人沮丧

为什么这样的事情似乎对我不起作用

@DAY = VARCHAR date value without time ("14/11/2013")
@HOURFROM = VARCHAR hour value ("0800")
[这些值已在表B的数据库中建立]

convert(DATETIME,(@DAY+' '+LEFT(@HOURFROM,2)+':'+RIGHT(@HOURFROM,2)),108)
[我想将该值建立为DATETIME,108,然后将该值更新到表A]

select convert(datetime,@day+ ' '+stuff(@hourfrom,3,0,':'),103) 

嗯,事实上,如果他将108改为103,问题中的原始代码就可以正常工作