Numeric data types
Numeric data types are numbers stored in database columns. These data types are typically grouped by:
-
Exact numeric types, values where the precision and scale need to be preserved. The exact numeric types are
INTEGER,BIGINT,DECIMAL,NUMERIC,NUMBER, andMONEY. -
Approximate numeric types, values where the precision needs to be preserved and the scale can be floating. The approximate numeric types are
DOUBLE PRECISION,FLOAT, andREAL.
Implicit casts from INTEGER, FLOAT, and NUMERIC to VARCHAR are not supported. If you need that functionality, write an explicit cast using one of the following forms:
CAST(numeric-expression AS data-type)
numeric-expression::data-type
For example, you can cast a float to an integer as follows:
=> SELECT(FLOAT '123.5')::INT;
?column?
----------
124
(1 row)
String-to-numeric data type conversions accept formats of quoted constants for scientific notation, binary scaling, hexadecimal, and combinations of numeric-type literals:
-
Scientific notation
:=> SELECT FLOAT '1e10'; ?column? ------------- 10000000000 (1 row) -
BINARYscaling:=> SELECT NUMERIC '1p10'; ?column? ---------- 1024 (1 row) -
hexadecimal:
=> SELECT NUMERIC '0x0abc'; ?column? ---------- 2748 (1 row)