SQL Server中的转换错误?

时间:2011-09-05 09:28:06

标签: sql

在我的SQL查询中:

  insert into Tbl_EmpMovement_T values (
        '004101',
        '2011-8-26',
        CONVERT(datetime,convert(varchar(10),'2011-8-26',120)+' ' +
        CONVERT(varchar(2),SUBSTRING('8:16',1,2))+':'+
        convert(varchar(2),SUBSTRING('8:16',4,2))+':00.000',120),
        CONVERT(datetime,convert(varchar(10),'2011-8-26',120)+' ' + 
        CONVERT(varchar(2),SUBSTRING('6:02',1,2))+':'+  
        convert(varchar(2),SUBSTRING('6:02',4,2))+':00.000',120)
  )     

我收到此错误

  

从字符转换日期和/或时间时转换失败   字符串。

1 个答案:

答案 0 :(得分:0)

我宁愿尝试这个:

         insert into Tbl_EmpMovement_T values (
        '004101',
        '2011-8-26',
        CAST ('2011-8-26' + ' ' +
   (  SUBSTRING('16:02',0, PATINDEX('%:%', '16:02')+1)) + 
    ( SUBSTRING('16:02',PATINDEX('%:%', '16:02')+1, 2)) AS datetime),
         CAST ('2011-8-26' + ' ' +
   (  SUBSTRING('16:02',0, PATINDEX('%:%', '16:02')+1)) + 
    ( SUBSTRING('16:02',PATINDEX('%:%', '16:02')+1, 2)) AS datetime)
  )   

这样,当时间部分在单位和两位数小时之间移动时,您不会遇到问题。