[英]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.