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

Why does BIGINT/INT not work in Netezza

在 Netezza 中,当我查询时

SELECT 2147483648:: BIGINT

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

当我查询

SELECT 2147483648:: INTEGER

我得到 "ERROR: pg_atoi: error reading "2147483648": 数值结果超出范围"

这是为什么?

该值的 BIGINT 的 CAST 应该工作正常:

TESTDB.ADMIN(ADMIN)=> SELECT 2147483648::BIGINT;
  ?COLUMN?  
------------
 2147483648
(1 row)

转换为整数失败,因为值 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