SQL中bigint类型 为什么存进去的是负数?

 我来答
衷识万鸿晖
2020-04-05 · TA获得超过3923个赞
知道大有可为答主
回答量:3154
采纳率:31%
帮助的人:200万
展开全部
不是数据类型的问题,bigint存储从-2^63
(-9223372036854775808)到2^63-1(9223372036854775807)
范围内的数字。存储大小为
8
个字节。但是在你取值的时候,因为数据类型是bigint的,程序会自动把你数据转换成int类型,你的数据106594712998的范围超出int的最大范围,所以程序会自动截取,最后出现-779469402。所以在获取值的时候应该改为:result.getLong()取值。
中囡黄涵煦
2020-01-12 · TA获得超过4195个赞
知道大有可为答主
回答量:3129
采纳率:27%
帮助的人:481万
展开全部
不是数据类型的问题,bigint存储从-2^63
(-9223372036854775808)到2^63-1(9223372036854775807)
范围内的数字。存储大小为
8
个字节。但是在你取值的时候,因为数据类型是bigint的,程序会自动把你数据转换成int类型,你的数据106594712998的范围超出int的最大范围,所以程序会自动截取,最后出现-779469402。所以在获取值的时候应该改为:result.getLong()取值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匡梧太叔幼菱
2019-08-25 · TA获得超过3715个赞
知道大有可为答主
回答量:3156
采纳率:29%
帮助的人:211万
展开全部
不是数据类型的问题,bigint存储从-2^63
(-9223372036854775808)到2^63-1(9223372036854775807)
范围内的数字。存储大小为
8
个字节。但是在你取值的时候,因为数据类型是bigint的,程序会自动把你数据转换成int类型,你的数据106594712998的范围超出int的最大范围,所以程序会自动截取,最后出现-779469402。所以在获取值的时候应该改为:result.getLong()取值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漂Q2803355139
2016-07-31
知道答主
回答量:36
采纳率:0%
帮助的人:58.9万
展开全部
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字),存储大小为 8 个字节。  在支持整数值的地方支持 bigint 数据类型,但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。  在 SQL Server 中,int 数据类型是主要的整数数据类型。  在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。  只有当参数表达式是 bigint 数据类型时,函数才返回 bigint,SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式