⏱️ MySQL – Como Converter Tempo Correta e Precisamente
Neste artigo trago exemplos práticos e eficazes para realizar conversões de tempo no MySQL/MariaDB. ⛏️
Para isso, utilizamos duas funções essenciais:
- TIME_TO_SEC() – Converte tempo para segundos
- SEC_TO_TIME() – Converte segundos para tempo
🔄 Exemplo básico de conversão e soma
Primeiro convertemos o tempo para segundos, somamos o total desejado e depois convertemos novamente para formato de tempo:
sec_to_time( SUM(time_to_sec(total_time)) )
Também é possível calcular diferença entre duas datas: basta converter a hora inicial e a final para segundos, subtrair e depois retornar o valor para formato de tempo.
🧮 E se o tempo estiver armazenado como FLOAT?
Alguns bancos armazenam valores como 8.5, 2.26 etc., representando horas e minutos. Para converter corretamente, veja um exemplo:
REPLACE(total_time,'.',':'),
concat(REPLACE(total_time,'.',':'),':00'),
TIME_TO_SEC(REPLACE(total_time,'.',':')),
SUM(TIME_TO_SEC(REPLACE(total_time,'.',':'))),
sec_to_time( SUM(TIME_TO_SEC(REPLACE(total_time,'.',':'))) ) -- Soma
Porém, esse método ainda não é totalmente confiável. Por exemplo: “8.40” pode ser interpretado como “8:04” dependendo do arredondamento.
✅ Comando definitivo para somar tempos armazenados como FLOAT
sec_to_time(
SUM(
TIME_TO_SEC(
concat(
REPLACE( CAST(total_time AS DECIMAL(4,2)), '.', ':' ),
':00')
)
)
)
📝 Explicação passo a passo
- CAST(total_time AS DECIMAL(4,2)) Formata corretamente o valor com duas casas decimais.
- REPLACE(…, '.', ':') Troca o ponto por dois-pontos, transformando “8.50” → “8:50”.
- concat(…, ':00') Adiciona os segundos → “8:50:00”.
- TIME_TO_SEC() Converte tudo para segundos.
- SUM() Soma todos os valores.
- SEC_TO_TIME() Converte novamente para formato de tempo.
Nos testes que realizei, o concat dos segundos não foi sempre necessário. Faça testes na sua consulta para confirmar o comportamento desejado.
📸 Exemplos gráficos


Gostou? Compartilhe com seus amigos e deixe um comentário! 😎
Um abraço, e até a próxima! 👋
#mysql #mariadb #conversao tempo #time_to_sec #sec_to_time #sqltips #horas mysql #programacao sql #universoadvpl