【发布时间】:2009-10-24 14:31:56
【问题描述】:
我面临一个问题,我将一列作为数字(38,0)
存储在此列中的数据超出范围,意味着它已达到其存储限制。我也试过 bigint ,但面临同样的问题。我不能把它当作 varchar 因为我必须在另一个计算中使用,所以那时我必须将它从 varchar 转换为 bigint ot numeric(38,0)。
那么,有没有办法存储高范围值。
【问题讨论】:
-
你能说得更具体点吗?您存储的哪些数字需要超过 38 位数字,但您希望对其进行数学运算?
-
假设一列(numeric (38,0)) 已存储值,即数字的最后一个限制。现在我想计算乘以 19.55 并且结果值应该存储在同一列中,然后它会给溢出错误。那么什么是替代解决方案或如何避免这个问题。
-
您能否提供一个 38 位有效且需要乘以另一个小数的数字的示例?我知道您是说您有一个 DECIMAL(38,0) 需要乘以 19.55。但这个数字真正代表什么?您可以将其存储为 DECIMAL(36,0),然后将最后两位数字保留为统计上不相关,并在显示时添加小数位吗?您可以按照其他建议使用 FLOAT(53) 吗?
标签: sql sql-server database sql-server-2005 tsql