Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoar!
Seguinte galera, fiz um select para trazer a diferença entre dois campos TIME, até ai sem novidade :
TIMEDIFF(hora1,hora2) AS horadiff
Só que ai o bixo pegou quanto eu encontrei horas da seguinte forma: hora1 = 22:00:00 e hora2 = 01:00:00, o valor da segunda hora é menor que a primeira, assim o valor vem como negativo, tentei usar o IF para inverter quando o resultado fosse negativo, mas ai tive um problema que o calculo saia errado.
Consegui a seguinte solução:
IF(
TIMEDIFF(hora1,hora2) < 0,
TIMEDIFF(CONCAT('2011-08-02 ',hora1),CONCAT('2011-08-01 ',hora2)),
TIMEDIFF(hora1,hora2)
) AS horadiff
Tudo bem esta funcionando, mas particulamente acho que ficou uma gamb, alguém conhece alguma forma de tratar isto, sei que estou sendo chato, mas gosto dos meus códigos bem organizadinhos. :D
Valeu
Olá William Espindola,
Para você obter o resultado correto sem utilizar a 'gamb', obrigatoriamente você deve ter armazenado a data completa, assim a função iria funcionar da maneira que desejas.
Espero ter lhe sito útil, abraços.
_ _
Fabiano Abreu
Papo Sql - Tutoriais, dicas e truques sobre SQL