繁体   English   中英

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

[英]SQL error trying to convert varchar to decimal

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM