Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Calcular hora

Bom dia, galera, estou com um problema para realizar o calculo de horas. Encontrei essa formula na internet, mas está dando algum erro, alguém pode me dizer se realmente funciona?

          TRUNC( (  (PR.HR_FIM - PR.HR_INICIO)
        * 86400
        / 3600))
|| ':'
|| TRUNC(MOD (
            (PR.HR_FIM - PR.HR_INICIO)
            * 86400,
            3600
         )
         / 60)
|| ':'
|| TRUNC(MOD (
            MOD (
               (PR.HR_FIM - PR.HR_INICIO)
               * 86400,
               3600
            ),
            60
         ))
5 respostas

To querendo mostrar em uma coluna a subtração da Hora Fim (HR_FIM) pela Hora Inicio (HR_INICIO)

SELECT   TRUNC (DATA) DATA,
                     TO_CHAR (DATA, 'HH24') HORA
MIN (TO_CHAR (DATA, 'HH24:MI')) HR_INICIO,
                     MAX (TO_CHAR (DATA, 'HH24:MI')) HR_FIM,

Eu já fiz algo parecido, mas, no meu caso, o campo era datetime, eu precisava saber se a diferença entre os dois campos era maior que um determinado tempo limite.

Para saber a diferença, neste caso você poderia fazer assim:

select  campo data_hora_inicial, campo_data_hora_final, DateDiff(s, data_hora_inicial, campo_data_hora_final) as tempo from minha_tabela

O DateDiff, do jeito que eu fiz, retorna a diferença em segundos.

Caso você queira pegar os segundos e formatar para ter uma resposta mais amigável, pode pensar em criar uma função que formate o resultado. Um exemplo você pode ver neste link:

https://social.msdn.microsoft.com/Forums/pt-BR/2b9041b0-af95-4a54-8f80-6abbe093b1ed/funo-que-converte-segundos-em-horas-no-formato-hhmmss?forum=520

O DateDiff é um comando na linguagem que mostra a diferença?

solução!

Isso mesmo, no SQL Server você utiliza esse comando para calcular a diferença entre datas, no primeiro parâmetro você informa o tipo de retorno que você quer

http://www.w3schools.com/sql/func_datediff.asp

No MySQL tem uma função com o mesmo nome, mas com comportamento diferente

http://www.mysqltutorial.org/mysql-datediff.aspx

Eu to usando o PL/SQL, parece que ele não tem essa função, pelo menos eu não conheço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software