我的存储过程中有这样一句:
set @cast = 'update test
set Date = cast(substring(time,7,2) + '-' + substring(time,4,2) + '-' + substring(time,1,2) as datetime)'
提示有这样的错误:
“操作数数据类型 varchar 对于 subtract 运算符无效“
请给帮忙改一下

解决方案 »

  1.   

    Try:set @cast = 'update test
    set Date = cast(substring(time,7,2) + ''-'' + substring(time,4,2) + ''-'' + substring(time,1,2) as datetime)'
      

  2.   

    这个是正解
    set @fromTime = 'update test
    set Date = left(test.Date,charindex('-',test.Date)) + [Time].Num + reverse(left(reverse(test.Date),charindex('-',reverse(test.Date))))
    from test,[Time]
    where substring(test.Date , charindex('-',test.Date) + 1 , charindex('-',test.Date,charindex('-',test.Date)+1) - charindex('-',test.Date) - 1) = [Time].[Month]'这个也帮改一下吧
      

  3.   

    晕哦
    把字符串内的'改成''就可以了set @fromTime = 'update test
    set Date = left(test.Date,charindex(''-'',test.Date)) + [Time].Num + reverse(left(reverse(test.Date),charindex(''-'',reverse(test.Date))))
    from test,[Time]
    where substring(test.Date , charindex(''-'',test.Date) + 1 , charindex(''-'',test.Date,charindex(''-'',test.Date)+1) - charindex(''-'',test.Date) - 1) = [Time].[Month]'