![](/img/trans.png)
[英]Arithmetic overflow error converting varchar to data type numeric -error
[英]Error : Arithmetic overflow error converting numeric to data type varchar
错误:将数字转换为数据类型varchar的算术溢出错误。
在这一行得到错误为什么以及应该改变什么?
CONVERT(VARCHAR(8),CONVERT(DECIMAL(8,4),((CurrentLoans.Price - PreviousLoans.Price) / PreviousLoans.Price) * 100))
这里至少有一个问题:
CONVERT(VARCHAR(8),CONVERT(DECIMAL(8,4))
Decimal(8,4)
表示8位数字,小数点右边4位。 这种不考虑实际的十进制字符,所以你可能有这样一个值:
1234.5678
这是一个有效的Decimal(8,4)
但不适合varchar(8)
。
我知道这是一个老帖子,但我只想说谢谢。 我遇到了这个确切的问题,最令人讨厌的是它从VIEW中选择时出错,但是当我使用VIEW中的select语句粘贴并将其插入TEMP TABLE时没有给出错误!
例:
select * from dvView --worked
select * from dvView where product = '5' --Broke!
--BUT
select * from #Temp_table_dvView --worked!
select * from #Temp_table_dvView where product = '5' --worked!
最后,我不得不改变视图中的一部分
select cast(productNumber as nvarchar(1), etc...
至
select cast(productNumber as nvarchar(2), etc...
它起作用了。
但奇怪的是,我得到的错误是
Arithmetic overflow error converting numeric to data type varchar.
而不是读取的那个
Data would be truncated
管他呢...
值得深思。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.