Soma de hora mysql

09/01/2016

0

Olá, tenho uma tabela com os campos id, descricao, data_inicio, data_fim, categoria

tenhos os seguintes registros

1 | nononono | 2016-01-01 12:00:00 | 2016-01-01 12:00:00 | categoria1
2 | nononono | 2016-01-01 13:00:00 | 2016-01-01 13:30:00 | categoria1
3 | nononono | 2016-01-01 14:00:00 | 2016-01-01 14:30:00 | categoria2

Preciso calcular o tempo subtraindo a data_fim - data_inici (até aí tudo bem, consegui fazer com o TIMEDIFF)
o problema acontece quando tento somar esse tempo para obter o tempo total
eu coloquei um SUM, mas o resultado não aparece corretamente

depois eu preciso agrupar a soma por categoria
e depois converter a informação do tempo parcial e o tempo total para usar uma porcentagem

se puderem me ajudar, agradeço muito
Edaurdo Miranda

Edaurdo Miranda

Responder

Post mais votado

09/01/2016

Boa tarde Eduardo, segue um código que achei e pode te ajudar:

SELECT time_format( SEC_TO_TIME( SUM( TIME_TO_SEC( TOTAL ) ) ),'%H:%i:%s') 
AS total_horas FROM horario where PRESTADOR='NOME' and MONTH(data) = 1 and YEAR(data) = 2015;

Alan Mario

Alan Mario
Responder

Mais Posts

10/01/2016

Edaurdo Miranda

Oi Alan, muito obrigado pela ajuda, deu certinho, mas agora estou com outro problema.
Essa tabela tem em torno de 1600 registros, se eu delimitar a quantidade de registros para até 445 registros, o calculo aparece certinho, fica em torno de 837h e uns quebrados,
acima disso não calula mais, aparece um valor em torno de 880 horas, e só isso, parece que ele não calcula mais registro nenhum acima disso, saberia me dizer por que?
eu ohei os registros individualmente para ver se algum campo da hora aparece como, o que poderia dar algum conflito, mas não, os campos estão preechidos certinhos

grato
Responder

10/01/2016

Edaurdo Miranda

Oi Alan, muito obrigado pela ajuda, deu certinho, mas agora estou com outro problema.
Essa tabela tem em torno de 1600 registros, se eu delimitar a quantidade de registros para até 445 registros, o calculo aparece certinho, fica em torno de 837h e uns quebrados,
acima disso não calula mais, aparece um valor em torno de 880 horas, e só isso, parece que ele não calcula mais registro nenhum acima disso, saberia me dizer por que?
eu ohei os registros individualmente para ver se algum campo da hora aparece como nulo, o que poderia dar algum conflito, mas não, os campos estão preenchidos certinhos

grato
Responder

10/01/2016

Alan Mario

Sabe informar se é alguma limitação do sgbd?
Responder

11/01/2016

Edaurdo Miranda

Olá Alan, a principio não, me parece memória, (existe isso no mysql?) o resultado fica 838:59:59, o que dá pra perceber que é algum erro,
nos cadastro os segundos sempre são 00, então não teria porque aparecer 59 no final. eu posso te mandar essa tabela pra você dar uma olhada, se você quiser
muito obrigado pela ajuda
Responder

11/01/2016

Alan Mario

Poxa Eduardo, queria pode te ajudar mais, mas sinceramente não sei como resolver esse problema.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar