整个早晨,我一直在用头撞墙。
以下SQL代码及其结果对我来说没有意义:
select CONVERT(INT, CONVERT(BINARY(30),2691485888))
结果是:
-1060082528
什么?为什么结果不等于我的原始整数?
我的整个目标是将整数转换为字节并将这些字节存储到数据库中,但是却没有使这个基本示例正常工作。谁能解释我在做什么错?
顺便说一句,我正在使用Sql Server 2005(9.0.4340)
正如我在较早的评论中所指出的,2,691,485,888比廉政局所能容纳的更大。
这将起作用:
select CONVERT(BIGINT, CONVERT(BINARY(30), CONVERT(BIGINT, 2691485888)))