15.1. Data Types
Presto currently supports a limited set of data types. These types can be used with the standard CAST operator.
BOOLEAN
This type captures boolean values true and false.
BIGINT
A 64-bit signed two’s complement integer with a minimum value of -2^63 and a maximum value of 2^63 - 1.
DOUBLE
A double is a 64-bit inexact, variable-precision implementing the IEEE Standard 754 for Binary Floating-Point Arithmetic.
DECIMAL
A fixed precision decimal number. Precision up to 38 digits is supported but performance is best up to 17 digits.
DECIMAL type takes two literal parameters:
- precision - total number of digits
- scale - number of digits in fractional part. Scale is optional and defaults to 0.
Example type definitions: DECIMAL(10,3), DECIMAL(20)
Example literals: DECIMAL '10.3', DECIMAL '1234567890', 1.1
Note
Decimal literals (e.g. 1.2) are treated as the values of the DECIMAL type by default.
- In order to keep compatibility with the previous versions of Presto set either:
- System wide property: parse-decimal-literals-as-double=true
- Session wide property: parse_decimal_literals_as_double=true
VARCHAR
Variable length character data.
Note
Character strings with length are not yet supported: varchar(n)
VARBINARY
Variable length binary data.
Note
Binary strings with length are not yet supported: varbinary(n)
JSON
Variable length json data.
DATE
Calendar date (year, month, day).
Example: DATE '2001-08-22'
TIME
Time of day (hour, minute, second, millisecond) without a time zone. Values of this type are parsed and rendered in the session time zone.
Example: TIME '01:02:03.456'
TIME WITH TIME ZONE
Time of day (hour, minute, second, millisecond) with a time zone. Values of this type are rendered using the time zone from the value.
Example: TIME '01:02:03.456 America/Los_Angeles'
TIMESTAMP
Instant in time that includes the date and time of day without a time zone. Values of this type are parsed and rendered in the session time zone.
Example: TIMESTAMP '2001-08-22 03:04:05.321'
TIMESTAMP WITH TIME ZONE
Instant in time that includes the date and time of day with a time zone. Values of this type are rendered using the time zone from the value.
Example: TIMESTAMP '2001-08-22 03:04:05.321 America/Los_Angeles'
INTERVAL YEAR TO MONTH
Span of years and months.
Example: INTERVAL '3' MONTH
INTERVAL DAY TO SECOND
Span of days, hours, minutes, seconds and milliseconds.
Example: INTERVAL '2' DAY
ARRAY
An array of the given component type.
Example: ARRAY[1, 2, 3]
MAP
A map between the given component types.
Example: MAP(ARRAY['foo', 'bar'], ARRAY[1, 2])
ROW
A structure made up of named fields. The fields may be of any SQL type, and are accessed with field reference operator .
Example: my_column.my_field