【发布时间】:2011-11-17 07:44:54
【问题描述】:
我整个上午都在用这个把头撞到墙上。
以下 SQL 代码及其结果对我来说毫无意义:
select CONVERT(INT, CONVERT(BINARY(30),2691485888))
导致:
-1060082528
什么?为什么结果不等于我原来的整数?
我的整个目标是将整数转换为字节并将这些字节存储到数据库中,但是如果没有让这个基本示例正常工作,我就被卡住了。谁能解释我做错了什么?
顺便说一下,我使用的是 Sql Server 2005 (9.0.4340)
【问题讨论】:
-
您能解释一下为什么需要将整数转换为字节吗?为什么不能将其存储在 INT 列中?
-
@kekekela - 如果知道这背后的原因,一个更好的选择可能是答案。上下文很重要。
-
一方面,2,691,485,888 比
INT所能容纳的要大。 -
使用 unsigned int 代替 int ;p
标签: sql sql-server tsql