Como se darán cuenta ando lidiando con los campos TIME en firebird, estoy haciendo un select de los retardos en horas, minutos y segundos de los empleados , pero veo que no me da exacto el dato, por ejemplo, les añado el siguiente Select, donde intento decifrar , cuanto tiempo en Horas y Minutos exacto pudiera tener X empleado:
Código SQL
[-]
SELECT C.CVEEMPLEADO,
CASE WHEN
(Cast('08:00:00' as TIME) - MIN(C.HORA)) / 60 BETWEEN -60 AND -0.01
THEN
( (Cast('08:00:00' as TIME) - MIN(C.HORA)) / 60 * (0-1)) ||' Mins.'
ELSE
CASE WHEN
((Cast('08:00:00' as TIME) - MIN(C.HORA)) / 60 ) < -60
THEN
(((Cast('08:00:00' as TIME) - MIN(C.HORA)) / 60 ) / 60 * (0-1) ) ||' Hrs.'
END RETARDO
....
Ejemplo1:
Si la hora de entrada son a las 8am y si X empleado checa a las 08:12:40 am
en la sentencia me desglosa el resultado = >>>> 12.6666 Mins.
en vez de mostrar 12.40 Mins
Ejemplo2:
Si la hora de entrada son a las 8am y si X empleado checa a las 09:40:00 am
en la sentencia me desglosa el resultado = >>>> 1.6777 Hrs.
en vez de mostrar 1.40 Hrs.
Agradezco cualquier sugerencia....