Sql 2005数据类型的溢出问题

来源:百度知道 编辑:UC知道 时间:2024/09/20 19:46:01
我在查询分析器执行如下:

select 256*256*256*202+256*256*101+256*172+1

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

什么原因呢?

算出来的值超过了 int 数据类型的范围了!
int : -2^31 (-2,147,483,648) 到 2^31-1 (2,147,483,647)

这样写
SELECT CAST (256*256*256*202+256*256*101+256*172+1 AS bigint)

就没错了

select 256*256*256*202.0+256*256*101.0+256*172.0+1