Skip to main content

Interval Functions

This section describes functions and operators for examining and manipulating INTERVAL values.

Interval Operators

The table below shows the available mathematical operators for INTERVAL types.

OperatorDescriptionExampleResult
+Addition of an INTERVALINTERVAL 1 HOUR + INTERVAL 5 HOURINTERVAL 6 HOUR
+Addition to a DATEDATE '1992-03-22' + INTERVAL 5 DAY1992-03-27 00:00:00
+Addition to a TIMESTAMPTIMESTAMP '1992-03-22 01:02:03' + INTERVAL 5 DAY1992-03-27 01:02:03
+Addition to a TIMETIME '01:02:03' + INTERVAL 5 HOUR06:02:03
-Subtraction of an INTERVALINTERVAL 5 HOUR - INTERVAL 1 HOURINTERVAL 4 HOUR
-Subtraction from a DATEDATE '1992-03-27' - INTERVAL 5 DAY1992-03-22
-Subtraction from a TIMESTAMPTIMESTAMP '1992-03-27 01:02:03' - INTERVAL 5 DAY1992-03-22 01:02:03
-Subtraction from a TIMETIME '06:02:03' - INTERVAL 5 HOUR01:02:03

Interval Functions

The table below shows the available scalar functions for INTERVAL types.

NameDescription
date_part(part, interval)Extract datepart component (equivalent to extract). See INTERVAL for the sometimes surprising rules governing this extraction.
datepart(part, interval)Alias of date_part.
extract(part FROM interval)Alias of date_part.
epoch(interval)Get total number of seconds, as double precision floating point number, in interval.
to_centuries(integer)Construct a century interval.
to_days(integer)Construct a day interval.
to_decades(integer)Construct a decade interval.
to_hours(integer)Construct an hour interval.
to_microseconds(integer)Construct a microsecond interval.
to_millennia(integer)Construct a millennium interval.
to_milliseconds(integer)Construct a millisecond interval.
to_minutes(integer)Construct a minute interval.
to_months(integer)Construct a month interval.
to_quarters(integer)Construct an interval of integer quarters.
to_seconds(integer)Construct a second interval.
to_weeks(integer)Construct a week interval.
to_years(integer)Construct a year interval.

Only the documented date part components are defined for intervals.

date_part(part, interval)

| Description | Extract datepart component (equivalent to extract). See INTERVAL for the sometimes surprising rules governing this extraction. | | Example | date_part('year', INTERVAL '14 months') | | Result | 1 |

datepart(part, interval)

| Description | Alias of date_part. | | Example | datepart('year', INTERVAL '14 months') | | Result | 1 |

extract(part FROM interval)

| Description | Alias of date_part. | | Example | extract('month' FROM INTERVAL '14 months') | | Result | 2 |

epoch(interval)

| Description | Get total number of seconds, as double precision floating point number, in interval. | | Example | epoch(INTERVAL 5 HOUR) | | Result | 18000.0 |

to_centuries(integer)

| Description | Construct a century interval. | | Example | to_centuries(5) | | Result | INTERVAL 500 YEAR |

to_days(integer)

| Description | Construct a day interval. | | Example | to_days(5) | | Result | INTERVAL 5 DAY |

to_decades(integer)

| Description | Construct a decade interval. | | Example | to_decades(5) | | Result | INTERVAL 50 YEAR |

to_hours(integer)

| Description | Construct an hour interval. | | Example | to_hours(5) | | Result | INTERVAL 5 HOUR |

to_microseconds(integer)

| Description | Construct a microsecond interval. | | Example | to_microseconds(5) | | Result | INTERVAL 5 MICROSECOND |

to_millennia(integer)

| Description | Construct a millennium interval. | | Example | to_millennia(5) | | Result | INTERVAL 5000 YEAR |

to_milliseconds(integer)

| Description | Construct a millisecond interval. | | Example | to_milliseconds(5) | | Result | INTERVAL 5 MILLISECOND |

to_minutes(integer)

| Description | Construct a minute interval. | | Example | to_minutes(5) | | Result | INTERVAL 5 MINUTE |

to_months(integer)

| Description | Construct a month interval. | | Example | to_months(5) | | Result | INTERVAL 5 MONTH |

to_quarters(integer)

| Description | Construct an interval of integer quarters. | | Example | to_quarters(5) | | Result | INTERVAL 1 YEAR 3 MONTHS |

to_seconds(integer)

| Description | Construct a second interval. | | Example | to_seconds(5) | | Result | INTERVAL 5 SECOND |

to_weeks(integer)

| Description | Construct a week interval. | | Example | to_weeks(5) | | Result | INTERVAL 35 DAY |

to_years(integer)

| Description | Construct a year interval. | | Example | to_years(5) | | Result | INTERVAL 5 YEAR |