Skip to main content

Builtin types

CHAR[ACTER] '(' length ')' character string with length upperbound
VARCHAR '(' length ')' | CHARACTER VARYING '(' length ')' string with atmost length upperbound
CLOB | CHARACTER LARGE OBJECT  
BLOB | BINARY LARGE OBJECT  
DECIMAL '(' P ',' S ')' | NUMERIC '(' P ',' S ')' with precision P and scale S
TINYINT 8 bit integer
SMALLINT 16 bit integer
INT 32 bit integer
BIGINT 64 bit integer
REAL 32 bit floating point
DOUBLE [PRECISION] 64 bit floating point
BOOLEAN  
DATE  
TIME  [ '(' posint ')' ] [WITH TIME ZONE] time of day with precision and time zone
TIMESTAMP [ '(' posint ')' ] [WITH TIME ZONE] date concatenated with unique time, precision and time zone

INTERVAL interval_qualifier

a temporal interval

The integer types align with the storage of 2,4, and 8 bytes. Their domain contains a NULL representation, which may cause unexpected side effects if you recast them to a larger size. The system does not provide overflow detection.

The numeric types are represented as fixed length integers, whose decimal point is produced during result rendering.

The types float and double map to the underlying implementation system. No special attention is given to the value NaN.

interval_qualifier :
     { YEAR | MONTH  | DAY | HOUR | MINUTE | SECOND  } [time_precision]
   |  start_field  TO  end_field

start_field :
   
{ YEAR | MONTH  | DAY | HOUR | MINUTE  } [time_precision]

end_field:
     
{ YEAR | MONTH  | DAY | HOUR | MINUTE | SECOND  [time_precision] }

time_precision :
     '(' posint ')'