为什么BIGINT / INT在Netezza中不起作用

时间:2016-07-07 22:36:12

标签: sql netezza

在Netezza,当我查询

SELECT 2147483648:: BIGINT

我得到结果2147483647 - 比我输入的数字少一个。

当我查询

SELECT 2147483648:: INTEGER

我得到“错误:pg_atoi:错误读取”2147483648“:数值结果超出范围”

为什么?

1 个答案:

答案 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