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 时出现算术溢出错误。
什么原因呢?
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