sql 聚合函数 sum 消息 8115,级别 16 将 expression 转换为数据类型 int 时出现算术溢出错误。

刚才同事问我资源容量有多大,自己得意的写了一句sql,但是贼打脸。报个大BUG

select sum(sourcesize) from T_Source 

消息 8115,级别 16,状态 2,第 2 行
将 expression 转换为数据类型 int 时出现算术溢出错误。

查了一下,网上说转换为bigint  也有写的转换为 decimal 和float  试了一下,确实好使。


bigint:从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位


我自己转换成了decimal 格式  :

select sum(sourcesize) from T_Source 

之后除以1024进制得到了资源总体的大小


参考文档:

1.http://www.studyofnet.com/news/214.html

2.http://bbs.csdn.net/topics/350111462


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值