MAKE_INTERVAL
Создаёт интервал из лет, месяцев, недель, дней, часов, минут и секунд.
PostgreSQL 17.9
MAKE_INTERVAL([years[, months[, weeks[, days[, hours[, mins[, secs]]]]]]])- [ ]необязательная часть
- years
- Количество лет, по умолчанию 0integerНеобязательный
- months
- Количество месяцев, по умолчанию 0integerНеобязательный
- weeks
- Количество недель, по умолчанию 0integerНеобязательный
- days
- Количество дней, по умолчанию 0integerНеобязательный
- hours
- Количество часов, по умолчанию 0integerНеобязательный
- mins
- Количество минут, по умолчанию 0integerНеобязательный
- secs
- Количество секунд, может быть дробным, по умолчанию 0double precisionНеобязательный
Возвращаемое значение
Интервал (interval); недели пересчитываются в дни, секунды — в часы и минуты
Примеры
Интервал из именованного аргумента
PostgreSQL 17.9
SELECT MAKE_INTERVAL(days => 10);Интервал из секунд
PostgreSQL 17.9
SELECT MAKE_INTERVAL(0, 0, 0, 0, 0, 0, 3661);Дата и время через две недели
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 через две недели.