如何在 sql 中乘以大数而不出现 "overflow error " 错误
How to multiply a large number in sql with out getting a "overflow error " error
我知道这可能是个愚蠢的问题;但是如何在 SQL 服务器中乘以大数而不出现此错误:
Arithmetic overflow error converting expression to data type int
我需要一个包含 6 位客户号码列表的列。
例如123456、123457 并使其成为 1234560000000、1234570000000 等
这是我尝试做的。
update account set sClientIdNo = sClientIdNo * 100000000
但我最终遇到了溢出错误。
任何帮助将不胜感激。
编辑: 我忘了提及包含客户编号的列具有 varchar 数据类型。
我建议您使用 numeric
类型如下:
DECLARE @a numeric(14, 0) = 123456
SELECT @a * 100000000
请注意,我使用 14
来满足您的要求,您可以使用更大的值来提高精度。
这对我有用。
UPDATE account SET sClientIdNo = CONVERT(bigint, sClientIdNo ) * 100000000
@shA.t 通过将@a 声明为数字提供了我需要的线索。
谢谢
我知道这可能是个愚蠢的问题;但是如何在 SQL 服务器中乘以大数而不出现此错误:
Arithmetic overflow error converting expression to data type int
我需要一个包含 6 位客户号码列表的列。
例如123456、123457 并使其成为 1234560000000、1234570000000 等
这是我尝试做的。
update account set sClientIdNo = sClientIdNo * 100000000
但我最终遇到了溢出错误。 任何帮助将不胜感激。
编辑: 我忘了提及包含客户编号的列具有 varchar 数据类型。
我建议您使用 numeric
类型如下:
DECLARE @a numeric(14, 0) = 123456
SELECT @a * 100000000
请注意,我使用 14
来满足您的要求,您可以使用更大的值来提高精度。
这对我有用。
UPDATE account SET sClientIdNo = CONVERT(bigint, sClientIdNo ) * 100000000
@shA.t 通过将@a 声明为数字提供了我需要的线索。
谢谢