Soma de hora mysql
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
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
Curtidas 0
Melhor post
Alan Mario
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;
GOSTEI 1
Mais Respostas
Edaurdo Miranda
09/01/2016
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
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
GOSTEI 0
Edaurdo Miranda
09/01/2016
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
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
GOSTEI 0
Alan Mario
09/01/2016
Sabe informar se é alguma limitação do sgbd?
GOSTEI 0
Edaurdo Miranda
09/01/2016
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
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
GOSTEI 0
Alan Mario
09/01/2016
Poxa Eduardo, queria pode te ajudar mais, mas sinceramente não sei como resolver esse problema.
GOSTEI 0