Функция EXTRACT в PostgreSQL при извлечении временных интервалов создаёт значения полей, соответствующие интерпретации, которая используется функцией вывода интервала. 1
Например, для извлечения общего числа дней из интервала можно использовать следующий запрос: 3
SELECT EXTRACT(DAY FROM INTERVAL '5 days 4 hours 30 minutes') AS total_days
При извлечении часов функция EXTRACT возвращает только часовую компоненту интервала, а не общее количество часов, включая дни. 3 Чтобы получить общее количество часов, нужно выполнить арифметическую операцию: 3
SELECT EXTRACT(DAY FROM INTERVAL '2 days 4 hours 30 minutes') * 24 + EXTRACT(HOUR FROM INTERVAL '2 days 4 hours 30 minutes') AS total_hours
Для извлечения минут функция EXTRACT возвращает только минутную часть интервала. 3 Чтобы получить общее количество минут из интервала, можно рассчитать следующее выражение: 3
SELECT (EXTRACT(DAY FROM INTERVAL '2 days 4 hours 30 minutes') * 24 * 60) + (EXTRACT(HOUR FROM INTERVAL '2 days 4 hours 30 minutes') * 60) + EXTRACT(MINUTE FROM INTERVAL '2 days 4 hours 30 minutes') AS total_minutes