Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Contando horas usando MySQL


Eu pensei em postar a resposta na perspectiva de resumir os problemas relacionados ao valor do tempo que os desenvolvedores, os usuários enfrentaram até agora. Não se trata apenas de formatação.

Você pode ou não ter notado que há possibilidade de soma do seu tempo total ser mal calculado pelo motor. Além disso, o mecanismo mysql pode retornar nulo, embora você tenha valores.

Quando você está adicionando/agregando valores de tempo, ele é convertido em um número e os resultados estarão no formato numérico. Se você tentar adicionar valores de tempo como o seguinte:

por exemplo. 01:38:50, 03:40:25 --> deve resultar idealmente em 05:19:15
  • Se você somar (os dois acima) --> você obtém um número
  • Se você usar CAST(Sum(os dois acima) AS TIME) --> você obtém null
  • Existem duas outras possibilidades mostradas no meu snippet de código.

Exemplo de referência de código . Ele mostrará os diferentes resultados que acabamos de discutir. Por enquanto, parece que a formatação de três vias pode ajudar.
time_format(sec_to_time(sum(time_to_sec(logged_duration))),'%h:%i:%s') total_log_duration

O bug relatado ao MySQL ainda não foi corrigido.