Подтвердить что ты не робот

PostgreSQL: интервал формата в виде минут

Когда я вычитаю метки времени, интервал находится в форме DD: HH: MM: SS. Как я могу преобразовать все это в минуты без извлечения дней и часов и умножения/добавления? Я ищу одну функцию, которую я могу заменить для date_part в этом запросе, чтобы он возвращал 65:

select date_part('minutes', '65 minutes'::interval);

Контекст: мне нужно знать, сколько минут прошло с момента создания метки времени.

4b9b3361

Ответ 1

SELECT EXTRACT(EPOCH FROM '2 months 3 days 12 hours 65 minutes'::INTERVAL)/60;

похоже, работает.

ПРЕДУПРЕЖДЕНИЕ: "кажется" является ключевым словом.

Ответ 2

На самом деле я не думаю, что вы можете сделать это, не выполняя причудливость (например, to_char), потому что минуты перевернутся на 59. Вот почему вы получаете:

postgres = # select date_part ('minutes', '65 minutes ':: interval);

date_part

     5

(1 строка)

postgres = # select '65 minutes ':: interval postgres- #;

интервал

1:05:00 (1 строка)