sql - 将数字转换为数字数据类型的算术溢出错误,但值小于指定的精度
问题描述
我有一列在表中定义如下
td_long_shr_qty (numeric(18,6), null)
当我更新列时出现错误
UPDATE
fact
SET
td_long_shr_qty = 1720187931245.8069
WHERE
id = 29
将数字转换为数字数据类型的算术溢出错误。
这个数字有什么问题1720187931245.8069
吗,因为它小于精确度 18 为什么我会收到这个错误。请帮助。
解决方案
的含义NUMERIC(18, 6)
是总共 18 位精度,其中 6位在小数点右侧(如果存在)。因此,这意味着这种类型可以容纳的最大数字是:
999999999999.999999
1720187931245.8069
我特意从下面的查询中粘贴了您的号码,并与最大可能的值对齐。您应该很清楚地看到它超过了NUMERIC(18, 6)
.
推荐阅读
- python - PyQt“类”对象没有属性“小部件”
- flutter - 如何在自定义小部件中打开条形码扫描仪?
- google-apps-script - 使用脚本或公式计算里程价格
- python - ResNet: ValueError: Input 0 is in compatible with layer model_7
- mysql - 使用 ON DUPLICATE UPDATE 忽略插入时的值
- cygwin - Cygwin:使用 MinGW fopen/etc 遵循符号链接
- c# - UDP客户端不接收数据
- java - 如何检查 InputStream 是否已被使用?
- pine-script - Pinescript 不能在警报时设置变量文本?
- jquery - IF 语句仅选择 jQuery 中不为空的标题