PostgreSQLで24時間以上のintervalを時間単位で表示させる

日付 2021.05.12
タイトル PostgreSQLで24時間以上のintervalを時間単位で表示させる
本文
(trunc((extract(epoch from [項目]) / 86400)::numeric, 0) * 24 || ' hours')::interval + to_char([項目], 'HH24:MI:SS.US')::interval

同一クエリ、セッション内で何度も利用する場合、一時領域でcreate functionしても良いと思う。

create or replace function pg_temp.to_timespan(interval) returns interval as $$ select (trunc((extract(epoch from $1) / 86400)::numeric, 0) * 24 || ' hours')::interval + to_char($1, 'HH24:MI:SS.US')::interval $$ language sql;

select pg_temp.to_timespan('1 year 2 mons 3 days 4 hours 5 mins 6 secs'::interval);
結果
to_timespan
-------------
10276:05:06
(1 row)