数字数据类型
数字数据类型是存储在数据库列中的数字。这些数据类型通常按照下列方式分类:
-
精确 数字类型,需要保存值的精度和标度。精确数字类型有
INTEGER
、BIGINT
、DECIMAL
、NUMERIC
、NUMBER
和MONEY
。 -
近似 数字类型,需要保存值的精度,标度可浮动。近似数字类型有
DOUBLE PRECISION
、FLOAT
和REAL
。
不支持从 INTEGER
、FLOAT
和 NUMERIC
到 VARCHAR
的隐式转换。如果您需要该功能,可使用下列形式之一进行显式转换:
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)