为什么 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
在 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