Может быть, вы найдете NUMTODSINTERVAL полезной функцией.Пример (Oracle 11g)
-- test table: NUMBERS
create table numbers ( id_, value_ ) as
select '001', 125698 from dual union all
select '002', 5698233 from dual union all
select '001', 896398233 from dual ;
я хочу суммировать значение для идентификатора 001 и преобразовать в дд: чч: мм: сс
select
numtodsinterval( sum( value_ ), 'second' )
from numbers
where id_ = '001'
;
-- result
NUMTODSINTERVAL(SUM(VALUE_),'SECOND')
+10376 10:25:31.000000
Вы можете EXTRACT дни / часы / минуты / секунды из результата и добавление некоторых символов ':' с помощью оператора конкатенации.
select
extract( day from interval_ ) || ':' ||
extract( hour from interval_ ) || ':' ||
extract( minute from interval_ ) || ':' ||
extract( second from interval_ ) dhms
from (
select
numtodsinterval( sum( value_ ), 'second' ) interval_
from numbers
where id_ = '001'
)
;
-- result
DHMS
10376:10:25:31
см. Также: dbfiddle