如何在 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 声明为数字提供了我需要的线索。

谢谢