Eu vou na mesma linha do nosso amigo Ademir.

 

Trabalhar com timestamp é bem melhor. Eu não uso muito as funções do bd, mas 
isso é coisa minha e as vezes acho que posso até estar andando contra a maré, 
enfim.

 

Geralmente eu converto com UNIX_TIMESTAMP(campo) as campo. Assim eu tenho um 
integer de retorno, que fica simples de fazer contas. Por exemplo:

 

SELECT UNIX_TIMESTAMP(entrada) as entrada, UNIX_TIMESTAMP(saída) as saída FROM 
tabela;

 

Depois é só fazer

diferenca = saida – entrada.

 

Mas verifique também a solução do Ademir, acredito que deve encaixar melhor no 
seu problema. Minha resposta é mais pitaco do que solução ^.^

 

 

 

De: [email protected] [mailto:[email protected]] 
Em nome de Ademir Cristiano Gabardo
Enviada em: segunda-feira, 30 de agosto de 2010 19:54
Para: 'CodeIgniter Brasil'
Assunto: [CodeIgniter] RES: [OFF] - MySQL - Campo Time com mais de 23hrs
Prioridade: Alta

 

Olá, eu já passei por uns perrengues parecidos com um sistema de agendamento de 
uma clínica que eu construí e no final das contas, mudei o tipo do campo para 
Timestamp no MySQL.

Fica bem mais fácil de fazer com DIFF, porque ele te retorna segundos,minutos, 
horas, dias etc, de diferença entre os dois campos, aí só precisa fazer as 
devidas conversões para ter o valor que você quer.
Neste caso você quer chegar em 160 horas no final do mês certo?

 

Bemmm de chutometro...

 

*       SELECT SUM(TIMEDIFF(tb_horas.inicio,tb_horas.fim)as horas_trabalhadas) 
as total_horas WHERE funcionario = 123 AND MONTH(tb_horas.inicio) =8 AND 
MONTH(tb_horas.fim) =8;

 

Vai te devolver em horas, min, seg, milisegundos...

 

Será que rola?

 

De: [email protected] [mailto:[email protected]] 
Em nome de Anderson Falkowski
Enviada em: segunda-feira, 30 de agosto de 2010 15:43
Para: CodeIgniter Brasil
Assunto: [CodeIgniter] [OFF] - MySQL - Campo Time com mais de 23hrs

 

Buenas pessoal! Estou criandou um sistema para marcar a carga horária de 
funcionários de uma empresa. Tenho uma tabela de cadastro com os dados do 
funcionário e em um campo do tipo TIME fica armazenado a sua carga horária 
(40:00:00, 44:00:00) e outra tabela que possui campos que marcam o dia (campo 
date) e marca a hora de entrada (campo TIME) e outro campo que marca a hora de 
saída (campo TIME).

Estou tentando gerar um relatório com as somas, para ver o mensal da carga 
horária só estou multiplicando por 4 (semanas) que retorna 18.12:26:40.

Tem alguma função ou forma de fazer com que ele fique no formato: 160:00:00?

Se alguém souber, ou já passou por isso e puder ajudar, seria de grande ajuda.

Obrigado.

-- 
Cordialmente, Anderson Falkowski.

_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a