Acredito que a melhor forma seria converter a entrada em horas e minutos (no exemplo considerei a entrada como um varchar2 no formato 'hora:minutos' ), obter o tempo em minutos, realizar o cálculo dos 35% e então converter de volta o resultado em horas, minutos e segundos:
Selecionar tudo
select tempo_em_minutos
, intervalo "35% de Tempo em minutos"
, trunc( intervalo / 60 ) "35% de Tempo (horas)"
, trunc( mod( intervalo, 60 ) ) "35% de Tempo (minutos)"
, round( mod( intervalo * 60, 60 ) ) "35% de Tempo (segundos)"
from
(
select horas, minutos
, ( horas * 60 ) + minutos tempo_em_minutos
, ( ( horas * 60 ) + minutos ) * .35 intervalo
from
(
select to_number( substr( tempo, 1, instr(tempo, ':')-1 ) ) horas
, to_number( substr( tempo, instr(tempo, ':')+1 ) ) minutos
from
(
select '10:49' tempo
from dual
)
)
);