Справочник по функциям

MAKE_INTERVAL

Создаёт интервал из лет, месяцев, недель, дней, часов, минут и секунд.

PostgreSQL 17.5
MAKE_INTERVAL([years[, months[, weeks[, days[, hours[, mins[, secs]]]]]]])

Параметры

yearsintegerнеобязательный
Количество лет, по умолчанию 0
monthsintegerнеобязательный
Количество месяцев, по умолчанию 0
weeksintegerнеобязательный
Количество недель, по умолчанию 0
daysintegerнеобязательный
Количество дней, по умолчанию 0
hoursintegerнеобязательный
Количество часов, по умолчанию 0
minsintegerнеобязательный
Количество минут, по умолчанию 0
secsdouble precisionнеобязательный
Количество секунд, может быть дробным, по умолчанию 0

Возвращаемое значение

Интервал (interval); недели пересчитываются в дни, секунды — в часы и минуты

Примеры

Интервал из именованного аргумента

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

Интервал из секунд

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

Дата и время через две недели

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

Подробности

Аргументы удобно передавать по имени: MAKE_INTERVAL(days => 10). Дата плюс интервал даёт дату со временем (timestamp), поэтому CURRENT_DATE + MAKE_INTERVAL(weeks => 2) возвращает момент 00:00 через две недели.

Смотрите также