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

MAKE_INTERVAL

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

PostgreSQL 17.9
MAKE_INTERVAL([years[, months[, weeks[, days[, hours[, mins[, secs]]]]]]])
  • [ ]необязательная часть
years
Количество лет, по умолчанию 0
integerНеобязательный
months
Количество месяцев, по умолчанию 0
integerНеобязательный
weeks
Количество недель, по умолчанию 0
integerНеобязательный
days
Количество дней, по умолчанию 0
integerНеобязательный
hours
Количество часов, по умолчанию 0
integerНеобязательный
mins
Количество минут, по умолчанию 0
integerНеобязательный
secs
Количество секунд, может быть дробным, по умолчанию 0
double precisionНеобязательный

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

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

Примеры

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

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

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

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

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

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

Подробности

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

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