代码之家  ›  专栏  ›  技术社区  ›  LearningSQL

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

  •  0
  • LearningSQL  · 技术社区  · 8 年前

    在Netezza中,当我查询

    SELECT 2147483648:: BIGINT
    

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

    SELECT 2147483648:: INTEGER
    

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

    这是为什么?

    1 回复  |  直到 8 年前
        1
  •  0
  •   ScottMcG    8 年前

    对于该值,将CAST转换为BIGINT应该可以正常工作:

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

    which is documented here .

    TESTDB.ADMIN(ADMIN)=> SELECT 2147483648::INTEGER;
    ERROR:  pg_atoi: error reading "2147483648": Numerical result out of range