Obrigado Chiappa, vou testar.

 

 

Carlos

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada: 31 de julho de 2014 17:56
Para: oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Calculo Horas - Oracle 10g

 

  

É ** trivial **, sabendo-se que a aritmética entre dates no Oracle te dá um 
valor numérico que representa qtdade de dias E que um dia tem 24 horas, 1 hora 
tem 60 mins e um min tem 60 segs :

SYS:AS SYSDBA:SQL>set serveroutput on
SYS:AS SYSDBA:SQL>DECLARE
   v_data_ini DATE := to_date('01/01/2014 10:00:00', 'dd/mm/yyyy hh24:mi:ss');
   v_data_fim DATE := to_date('03/01/2014 11:30:20', 'dd/mm/yyyy hh24:mi:ss');
BEGIN
   dbms_output.put_line(
       'Dias:'   || trunc( v_data_ini - v_data_fim ) ||
       ',Horas:' || trunc( mod( (v_data_ini - v_data_fim)*24, 24 ) )    ||
       ',Mins :' || trunc( mod( (v_data_ini - v_data_fim)*24*60, 60 ) ) ||
       ',Segs :' || trunc( mod( (v_data_ini-v_data_fim)*24*60*60, 60 ) )
                       );
END;
/

Dias:-2,Horas:-1,Mins :-30,Segs :-19

PL/SQL procedure successfully completed.

EVIDENTEMENTE :

 -> quando vc tira um valor maior de um valor menor vc obtém um Negativo : se 
for o caso, Inverter a ordem na subtração...

 -> se só te interessa horas, minutos e segundos, simplesmente Adicione nas 
duas datas um dia/mês/ano arbitrário qualquer, sempre o mesmo, E não use a 
lógica de DIAS

 []s

   Chiappa



  • [oracle_br] Calculo ... 'Carlos Pinto' carlos.pin...@yahoo.com.br [oracle_br]
    • [oracle_br] Re:... jlchia...@yahoo.com.br [oracle_br]
      • RE: [oracle... 'Carlos Pinto' carlos.pin...@yahoo.com.br [oracle_br]
        • Re: [or... Andre Santos andre.psantos...@gmail.com [oracle_br]
          • Re:... Fabricio Pedroso Jorge fpjb...@gmail.com [oracle_br]

Responder a