数字数据类型

数字数据类型是存储在数据库列中的数字。这些数据类型通常按照下列方式分类:

  • 精确 数字类型,需要保存值的精度和标度。精确数字类型有 INTEGERBIGINTDECIMALNUMERICNUMBERMONEY

  • 近似 数字类型,需要保存值的精度,标度可浮动。近似数字类型有 DOUBLE PRECISIONFLOATREAL

不支持从 INTEGERFLOATNUMERICVARCHAR 的隐式转换。如果您需要该功能,可使用下列形式之一进行显式转换:

CAST(numeric-expression AS data-type)
numeric-expression::data-type

例如,您可以将浮点数转换为整数,如下所示:

=> SELECT(FLOAT '123.5')::INT;
 ?column?
----------
      124
(1 row)

字符串到数字的数据类型转换针对科学记数法、二进制记数法、十六进制和数字型字面量组合,接受带引号常数的格式:

  • 科学记数法:

    => SELECT FLOAT '1e10';
      ?column?
    -------------
     10000000000
    (1 row)
    
  • BINARY 缩放:

    => SELECT NUMERIC '1p10';
     ?column?
    ----------
         1024
    (1 row)
    
  • 十六进制:

    => SELECT NUMERIC '0x0abc';
     ?column?
    ----------
         2748
    (1 row)