O grande problema de se calcular a diferença de tempo entre datas pode ser resolvido com uma função do MYSQL a TIMESTAMPDIFF().

Seguem alguns exemplos de como calcula a diferença entre TIMESTAMP e retorno em:

Horas
SELECT TIMESTAMPDIFF(HOUR, hora_inicial, hora_final ) FROM TABELA

Minutos
SELECT TIMESTAMPDIFF(MINUTE, hora_inicial, hora_final ) FROM TABELA

Segundos
SELECT TIMESTAMPDIFF(SECOND, hora_inicial, hora_final ) FROM TABELA

Para calcular diferença entre campos DATE utilize a função DATEDIFF.

Para calcular diferença entre campos TIME utilize a função TIMEDIFF.

Até o próximo,
Rafael Theodoro.

7 thoughts to “Como Calcular diferença de entre DATAS (TIMESTAMP, DATE ou TIME) no Mysql

  • elvis araujo

    tem como usar uma consulta para pegar tudo de vez?? calcular a hora o minuto e os segundos tudo em uma consulta só.

    Responder
    • Rafael Theodoro
      Rafael Theodoro

      Tem sim, basta utilizar a função TIMEDIFF():

      Exemplo:
      SELECT TIMEDIFF(‘2011-02-08 12:20:00′,’2011-02-08 08:30:20’);

      Responder
  • otavio

    isso mesmo que eu precisava, vlw

    Responder
  • Marco Antonio

    Conseguir recuperar usando o time unix_timestamp(now()) com FROM_UNIXTIME().

    Funfou.

    Responder
  • Davi Menezes

    legal essas funcoes, para somar o tal de horas minutos e segundos, usei(sec_to_time(sum(time_to_sec(timedif(dafa_fim, data_inicial))))) as total. Retorna no formato h:m:s

    Responder
  • Luiz Felipe

    Tem como utilizar a função SELECT TIMEDIFF() passando duas variáveis? no caso estou usando uma procedure.

    Responder
  • Almir Ricardo

    Ótimo site, parabéns e grato.

    Responder

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.