类型为int的算术溢出错误,值= 4957500001.400178

格库尔

我知道过去也曾问过类似的问题,但我认为我的情况略有不同。我有一列具有对数值的列,我正尝试使用以下公式将它们取反:SELECT POWER(10,CAST(9.695262723 AS NUMERIC(30,15)))

假设值9.695262723是该列的值之一。尝试运行此查询时,出现错误消息Arithmetic overflow error for type int, value = 4957500001.400178

另一方面,相同的查询对于较小的值也适用,例如 SELECT POWER(10,CAST(8.662644523 AS NUMERIC(30,15)))

我如何克服该错误并计算我拥有的log10项的逆值?仅作参考,表中的较大值(以log10刻度)为12.27256096

拉努

这里的问题是您的第一个输入参数(10),默认情况下,SQL Server将其视为datatype intint的最大值为2 ^ 31-1(2,147,483,647),并且数字4,957,500,001远大于此值,因此您需要使用bigint

SELECT POWER(CONVERT(bigint,10),CONVERT(numeric(30,15),9.695262723));

编辑:如果您需要保留小数位,则使用numeric具有足够大的比例和精度的a代替bigint

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

smallint的算术溢出错误-但数据类型为int吗?

类型 varchar 值的算术溢出错误 =770214566.000000000

存储过程算术溢出错误将表达式转换为数据类型int

SQL Server算术溢出错误,将IDENTITY转换为数据类型int,但尚未达到int的最大值

意外输出错误:将表达式转换为数据类型 int 的算术溢出错误

成功执行后,我收到错误:将表达式转换为数据类型int的算术溢出错误

T-SQL代码中将表达式转换为数据类型int消息的算术溢出错误

左连接临时表时出现“将表达式转换为 int 数据类型的算术溢出错误”

SQL:左联接和求和:将表达式转换为数据类型int的算术溢出错误

插入时:将表达式转换为数据类型 int 时出现算术溢出错误

sql将int转换为datetime,溢出问题将表达式转换为数据类型varchar的算术溢出错误

出现错误时,算术溢出错误将数字转换为数据类型数字

算术溢出错误将表达式转换为数据类型 int(如何将 18 位整数转换为日期时间)

消息8115,级别16,状态2,第2行算术溢出错误将表达式转换为数据类型int

如何解决Msg 8115,级别16,状态2,行2将表达式转换为数据类型int的算术溢出错误?

在var.net中将varchar转换为数值类型的算术溢出错误

SUM(myfield):将数字转换为数据类型数值的算术溢出错误

SQL Server算术溢出错误将表达式转换为数据类型datetime

将IDENTITY转换为数据类型tinyint的算术溢出错误

将数字转换为数据类型数字的算术溢出错误。EF核心

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

将varchar转换为数值类型(SQL)的算术溢出错误

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

“将表达式转换为数据类型nvarchar的算术溢出错误。”

在存储过程中将varchar转换为数值类型的算术溢出错误

在执行查询时将数值转换为数据类型数值的算术溢出错误

将varchar转换为数值数据类型的算术溢出错误-找不到合适的答案

插入时在 INT 列上使用 SUM 时如何防止算术溢出错误?

类型为Excel的Excel VBA中的溢出错误