[firebase-br] Problema consulta com intervalos de hora

Leandro Rezende leandrofabior em gmail.com
Ter Dez 18 17:02:43 -03 2007


preciso de uma consulta pra calcular e mostra como time os intervalo abaixo


descobri q  quando faco time2 - time1  o firebird retorna a quantidade de
segundos no intervalo em um double
para transformar em hora usei a seguinte consulta

select cod_turno,
cast (cast((saida1 - entrada1)/3600 as integer) ||':'||cast( ((saida1 -
entrada1) -  3600*cast((saida1 - entrada1)/3600 as integer))/60 as integer)
as time) as total1P,
cast (cast((saida2 - entrada2)/3600 as integer) ||':'||cast( ((saida2 -
entrada2) -  3600*cast((saida2 - entrada2)/3600 as integer))/60 as integer)
as time) as total2P,
cast (cast((saida3 - entrada3)/3600 as integer) ||':'||cast( ((saida3 -
entrada3) -  3600*cast((saida3 - entrada3)/3600 as integer))/60 as integer)
as time) as total3P
from turno

o problema e quando a divisao da por exemplo 5,9 o fb arredonda pra 6,  ai
aparece um valor negativo nos  minutos e danousse tudo, precisaria de um
modo de truncar (saida2 - entrada2)/3600 ao inves de fazer o cast. Alguem
tem alguma opiniao oiu ideia?



Mais detalhes sobre a lista de discussão lista