Skip to main content
The family of data types representing time and date intervals. The resulting types of the INTERVAL operator. Structure:
  • Time interval as an unsigned integer value.
  • Type of an interval.
Supported interval types:
  • NANOSECOND
  • MICROSECOND
  • MILLISECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR
For each interval type, there is a separate data type. For example, the DAY interval corresponds to the IntervalDay data type:

Usage Remarks

You can use Interval-type values in arithmetical operations with Date and DateTime-type values. For example, you can add 4 days to the current time:
Also it is possible to use multiple intervals simultaneously:
And to compare values with different intervals:

Aggregation

sum, avg, min, max and any over an Interval column return an interval of the same type. sum adds up the number of units, and avg averages them and rounds the result to a whole number of them:
Values of different units are brought to their common unit before they are aggregated, so summing a minute and a second gives 61 seconds. Month, Quarter and Year have no common unit with the smaller ones - a month is not a fixed number of days - and cannot be mixed with them at all.

Mixed-type Intervals

Intervals of mixed type, e.g. multiple hours and multiple minutes, can be created using INTERVAL 'value' <from_kind> TO <to_kind> syntax. The result is a tuple of two or more intervals. Supported combinations: Non-leading fields are validated per the SQL standard: MONTH 0-11, HOUR 0-23, MINUTE 0-59, SECOND 0-59.
An optional leading + or - sign applies to all components:

See Also

Last modified on September 22, 2026