尝试将varchar转换为十进制的SQL错误

时间:2018-09-22 13:39:23

标签: sql excel

我试图弄清楚为什么出现以下错误。当我试图告诉它转换为小数时,为什么要尝试将其转换为int?

  

将varchar值'938.00'转换为数据类型int时转换失败。

这是业务目标。如果我过滤掉该时间段,它确实可以工作,但是将数据导入Excel时需要该时间段。

convert(decimal(9,2),'"+$WorkSheet.Range('D13').Text.replace("'","").replace(" ","").replace("$","").replace(",","").replace("-","")+"'+0)

2 个答案:

答案 0 :(得分:0)

大概是因为您使用的是+ 0,这意味着+被视为加法而不是串联。我认为简单的解决方案将被替换:

replace('convert(decimal(9,2), @val)',
        '@val',
        $WorkSheet.Range('D13').Text.replace("'", "").replace(" ", "").replace("$", "").replace(",", "").replace("-", "")
       )

答案 1 :(得分:0)

这是我想出的。它看起来粗糙,但似乎可以工作。测试将继续。再次感谢。

convert(decimal(9,2), ISNULL(NULLIF('"+$WorkSheet.Range('D14').Text.replace("'","").replace(" ","").replace("$","").replace(",","").replace("-","")+"', ''),'0')),
相关问题