duvidas calculo de horas

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
dark neo
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 27 Set 2012 3:06 pm

Pessoal venho recorrer a voces mais uma vez.. estou com um prob que não estou conseguindo resolver

preciso tira as horas entre este horario

08:00 as 20:00 hs

estou fanzendo desse jeito mais esta retonando errado.

--SELECT TO_NUMBER( (dt_ini - dt_fim)) * 12
--FROM DUAL;

* 12 porque são 12 horas trabalhadas so que se eu coloco o dia 01/10/2012 08:00 a 01/10/2012 a 20:00 ele me retorna 0 hora eu preciso que me retorne 12 horas .

Outro exemplo se eu passo do dia 01/10/2012 08:00 a 05/10/2012 a 20:00 ele me retorna 48 horas e não 60 horas
espero que tenho sido claro, ficou um pouco confuso..

obrigado pela atenção
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Olá dark_negro,

Me chama atenção na sua querie que você está tentando subtrair a DATA INICIAL da DATA FINAL, deveria ser exatamente o contrário (FINAL-INICIAL), pois senão você terá um valor negativo.

Não sei como você está formatando a data dentro da querie, mas eu procuro sempre informar uma máscara para que as horas não sejam desconsideradas.

Exemplo:

Selecionar tudo

SQL> SELECT TO_NUMBER(TO_DATE('05/10/2012 20:00:00','DD/MM/RRRR HH24:MI:SS')-TO_DATE('01/10/2012 08:00:00','DD/MM/RRRR HH24:MI:SS')) *12  AS DIFERENCA FROM DUAL


 DIFERENCA
----------
        54
Abraços,

Sergio Coutinho
dark neo
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qui, 27 Set 2012 3:06 pm

obrigado STCOUTINHO consegui acertar e resolver :-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 15 visitantes