Function Reference

MAKE_INTERVAL

Creates an interval from years, months, weeks, days, hours, minutes and seconds.

PostgreSQL 17.9
MAKE_INTERVAL([years[, months[, weeks[, days[, hours[, mins[, secs]]]]]]])
  • [ ]optional part
years
Number of years, 0 by default
integerOptional
months
Number of months, 0 by default
integerOptional
weeks
Number of weeks, 0 by default
integerOptional
days
Number of days, 0 by default
integerOptional
hours
Number of hours, 0 by default
integerOptional
mins
Number of minutes, 0 by default
integerOptional
secs
Number of seconds, can be fractional, 0 by default
double precisionOptional

Return value

An interval; weeks are converted to days, seconds to hours and minutes

Examples

Interval from a named argument

PostgreSQL 17.9
SELECT MAKE_INTERVAL(days => 10);
make_interval
10 days

Interval from seconds

PostgreSQL 17.9
SELECT MAKE_INTERVAL(0, 0, 0, 0, 0, 0, 3661);
make_interval
01:01:01

Timestamp in two weeks

PostgreSQL 17.9
SELECT CURRENT_DATE + MAKE_INTERVAL(weeks => 2) AS in_two_weeks;

Details

It is convenient to pass the arguments by name: MAKE_INTERVAL(days => 10). A date plus an interval gives a timestamp, so CURRENT_DATE + MAKE_INTERVAL(weeks => 2) returns the moment 00:00 two weeks from now.

See also