Ответ 1
SELECT EXTRACT(EPOCH FROM '2 months 3 days 12 hours 65 minutes'::INTERVAL)/60;
похоже, работает.
ПРЕДУПРЕЖДЕНИЕ: "кажется" является ключевым словом.
Когда я вычитаю метки времени, интервал находится в форме DD: HH: MM: SS. Как я могу преобразовать все это в минуты без извлечения дней и часов и умножения/добавления? Я ищу одну функцию, которую я могу заменить для date_part
в этом запросе, чтобы он возвращал 65:
select date_part('minutes', '65 minutes'::interval);
Контекст: мне нужно знать, сколько минут прошло с момента создания метки времени.
SELECT EXTRACT(EPOCH FROM '2 months 3 days 12 hours 65 minutes'::INTERVAL)/60;
похоже, работает.
ПРЕДУПРЕЖДЕНИЕ: "кажется" является ключевым словом.
На самом деле я не думаю, что вы можете сделать это, не выполняя причудливость (например, to_char), потому что минуты перевернутся на 59. Вот почему вы получаете:
postgres = # select date_part ('minutes', '65 minutes ':: interval);
5
(1 строка)
postgres = # select '65 minutes ':: interval postgres- #;
1:05:00 (1 строка)