Это можно сделать, но я полагаю, что единственный способ - через следующее чудовище (при условии, что ваше имя столбца временного интервала - "ti"):
select
to_char(floor(extract(epoch from ti)/3600),'FM00')
|| ':' || to_char(floor(cast(extract(epoch from ti) as integer) % 3600 / 60), 'FM00')
|| ':' || to_char(cast(extract(epoch from ti) as integer) % 60,'FM00')
as hourstamp
from whatever;
См? Я же говорил, это было ужасно :) 1004 *
Было бы неплохо подумать, что
select to_char(ti,'HH24:MI:SS') as hourstamp from t
сработало бы, но, увы, формат HH24 не "поглощает" переполнение за пределами 24. Вышеприведенное (воссоздано по памяти) происходит из некоторого кода, который я когда-то написал. Чтобы не оскорбить деликатных телосложений, я инкапсулировал вышеуказанные махинации с целью ...