【发布时间】:2012-01-23 12:22:30
【问题描述】:
我正在 SQLServer 中进行一些位操作。并且遇到了著名的“算术溢出”错误。情况是,我希望它溢出。如何告诉它允许溢出并忽略错误?
我正在做这个选择:
SELECT CONVERT(bigint, 0x8000000000000000)-1
我希望它返回 9223372036854775807(最大的 bigint),但它返回:
Arithmetic overflow error converting expression to data type bigint.
【问题讨论】:
-
我不知道您的需求是什么,但您正在尝试将值 0x8000000000000000 转换为 bigint。该值超过了 bigint 的最大值(如您所知)。但这就是为什么你得到溢出。仅供参考:这有效:SELECT CONVERT(bigint, 0x7fffffffffffffff)
标签: sql-server tsql