› Fóruns › SQL e PL/SQL › Problema com comando ROUND › Problema com comando ROUND
Olá,
Lembrando que se o seu campo já for tipo Date pode-se apenas usar a conversão e depois o cálculo. Por exemplo:
select last_day(sysdate) - sysdate dias,
to_number(to_char(sysdate, 'HH24')) - to_number(to_char(last_day(trunc(sysdate)), 'HH24')) horas,
to_number(to_char(sysdate, 'MI')) - to_number(to_char(last_day(trunc(sysdate)), 'MI')) minutos,
to_number(to_char(sysdate, 'SS')) - to_number(to_char(last_day(trunc(sysdate)), 'SS')) segundos
from dual;
Isso retorna algo assim:
DIAS HORAS MINUTOS SEGUNDOS
11 13 13 48
Se os campos bpmcrp1.XDEHRET e tbpmpro1.XDEHREC forem do tipo Date o SQL deve ficar assim:
select
tbpmpro1.NCODRIN as Contrato,
tbpmpro1.NNUMPRO as Processo,
tbpmpro1.XDEHREC as Recepcao,
tbpmcrp1.XDEHRET as Retirada,
tbpmcrp1.XDEHRET- tbpmpro1.XDEHREC ||' Dias ' ||
to_number(to_char(tbpmcrp1.XDEHRET, 'HH24') - to_number (to_char(tbpmpro1.XDEHREC, 'HH24')))||' Horas ' ||
to_number(to_char(tbpmcrp1.XDEHRET, 'MI') - to_number (to_char(tbpmpro1.XDEHREC, 'MI'))) ||' Minutos '
as Diferenca
from
oraims.tbpmpro1 left join oraims.tbpmcrp1 on
tbpmpro1.XDATPRO = tbpmcrp1.XDATPRO and
tbpmpro1.NNUMPRO = tbpmcrp1.NNUMPRO
where
to_char (tbpmpro1.XDATPRO, 'dd/mm/yyyy') = '14/01/2011'
and tbpmpro1.NNUMPRO = 360
Se não forem coloque a conversão to_date primeiro para eles.
[]s Ishii