我知道这可能是一个愚蠢的问题;但是如何在SQL Server中乘以大数而不会出现此错误:
将表达式转换为数据类型int的算术溢出错误
我需要一个包含6位客户编号列表的列。
E.g。 123456,123457并使其成为1234560000000,1234570000000&等
这是我尝试过的。
update account set sClientIdNo = sClientIdNo * 100000000
但我最终得到了溢出错误。 任何帮助将不胜感激。
编辑:我忘了提到包含客户编号的列有 varchar 数据类型。
答案 0 :(得分:0)
我建议您使用numeric
这样的类型:
DECLARE @a numeric(14, 0) = 123456
SELECT @a * 100000000
请注意,我根据您的要求使用14
,您可以使用更大的值来获得精确度。
答案 1 :(得分:0)
这对我有用。
UPDATE account SET sClientIdNo = CONVERT(bigint, sClientIdNo ) * 100000000
@shA.t通过声明@a数字提供了我需要的线索。
谢谢