简体   繁体   English

将数字转换为数据类型varchar的算术溢出错误

[英]Arithmetic overflow error converting numeric to data type varchar

So, here's my query: 所以,这是我的查询:

SELECT '$'
       + CONVERT(VARCHAR (6), Cast(Avg(TotalPrice) AS NUMERIC (6, 2))) AS 'Average Price',
       '$'
       + CONVERT(VARCHAR (6), Cast(Min(TotalPrice) AS NUMERIC (6, 2))) AS 'Minimum Price',
       '$'
       + CONVERT(VARCHAR (6), Cast(Max(TotalPrice) AS NUMERIC (6, 2))) AS 'Maximum Price'
FROM   Invoice; 

The AVG column and the MIN column work fine but the MAX column returns: AVG列和MIN列工作正常,但MAX列返回:

"Arithmetic overflow error converting numeric to data type varchar" “将数字转换为数据类型varchar的算术溢出错误”

And I'm not sure why I get the error. 而且我不确定为什么会收到错误消息。

Try this 尝试这个

SELECT '$'
       + CONVERT(VARCHAR (10), Cast(Avg(TotalPrice) AS NUMERIC (8, 2))) AS 'Average Price',
       '$'
       + CONVERT(VARCHAR (10), Cast(Min(TotalPrice) AS NUMERIC (8, 2))) AS 'Minimum Price',
       '$'
       + CONVERT(VARCHAR (10), Cast(Max(TotalPrice) AS NUMERIC (8, 2))) AS 'Maximum Price'
FROM   Invoice; 

Your problem is that a 'Numeric(6,2)' has up to 6 digits, plus a decimal point (or comma depending on where you are). 您的问题是'Numeric(6,2)'最多包含6位数字,加上一个小数点(或逗号,具体取决于您所在的位置)。 So you will need to have 'VARCHAR(7)' instead of 6 to cater for this. 因此,您需要使用'VARCHAR(7)'而不是6来满足此要求。

The NUMERIC(6,2) indicates total 6 digits and out of which 2 are decimal places. NUMERIC(6,2)表示总共6位数字,其中2位是小数位。

you have a value like 1234.66 then total characters needed is 7 你有一个像1234.66的值,那么总字符数是7

Get the maximum value and use appropriate varchar size, here you need atleast varchar(7) 获取最大值并使用适当的varchar大小,这里您需要至少varchar(7)

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

相关问题 算术溢出错误将varchar转换为数据类型numeric -error - Arithmetic overflow error converting varchar to data type numeric -error 错误:将数字转换为数据类型varchar的算术溢出错误 - Error : Arithmetic overflow error converting numeric to data type varchar 错误:将varchar转换为数值类型的算术溢出错误 - Error: Arithmetic overflow error converting varchar to data type numeric 将varchar转换为数值类型-VBA的算术溢出错误 - Arithmetic overflow error converting varchar to data type numeric -VBA 在存储过程中将varchar转换为数值类型的算术溢出错误 - Arithmetic overflow error converting varchar to data type numeric in stored procedure 将varchar转换为数值类型的算术溢出错误 - Arithmetic overflow error converting varchar to data type numeric 将 varchar 转换为数据类型 numeric CASE 语句的算术溢出错误 - Arithmetic overflow error converting varchar to data type numeric CASE statement 将 varchar 转换为数据类型 numeric 的算术溢出错误 - Arithmetic overflow error converting varchar to data type numeric 将varchar转换为数值数据类型的算术溢出错误? - Arithmetic overflow error converting varchar to data type numeric? 在SQL Server中将varchar转换为数值类型的算术溢出错误 - Arithmetic overflow error converting varchar to data type numeric in SQL Server
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM