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);Интервал из секунд
PostgreSQL 17.5
SELECT MAKE_INTERVAL(0, 0, 0, 0, 0, 0, 3661);Дата и время через две недели
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 через две недели.