在Netezza,当我查询
时SELECT 2147483648:: BIGINT
我得到结果2147483647 - 比我输入的数字少一个。
当我查询
时SELECT 2147483648:: INTEGER
我得到“错误:pg_atoi:错误读取”2147483648“:数值结果超出范围”
为什么?
答案 0 :(得分:0)
对于该值的CAST到BIGINT应该可以正常工作:
TESTDB.ADMIN(ADMIN)=> SELECT 2147483648::BIGINT;
?COLUMN?
------------
2147483648
(1 row)
CAST到整数失败,因为值2,147,483,648超出了INTEGER数据类型允许的范围(-2,147,483,648到2,147,483,647),which is documented here。
TESTDB.ADMIN(ADMIN)=> SELECT 2147483648::INTEGER;
ERROR: pg_atoi: error reading "2147483648": Numerical result out of range