Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   tratamiento de hora en interbase 6 (https://www.clubdelphi.com/foros/showthread.php?t=21190)

manolop 10-05-2005 11:14:35

tratamiento de hora en interbase 6
 
Hola, estoy intentando realizar una serie de operaciones con horas pero voy a explicar un poco de que va para poner en situación. Tengo una tabla donde guardo los turnos con su codigo y hora inicio y fin (despues de dar muchas patadas he optado por crear estos campos de tipo DATE poniendo la fecha inicial del sistema y guardando solo la hora, EJ '31/12/1899 15:00:00' ), el tema es que necesito saber los paros que hay en cada turno, como podria ser los 30 minutos de almorzar o el tiempo de comer,,,,
Una vez tengo los inicios y fines de los turnos y paros, tendria que saber los minutos que se trabajan en una hora pues los paros puedes abarcar fracciones de 2 horas distintas, Ej: descanso desde las 13:30 a las 14:30, asi que cuando este tratando las 13 horas debere obtener los 30 minutos operativos que corresponden pero no se muy bien como hacer esta consulta. No se si me explico con claridad.

En esta consulta tendria los paros que se encuentran dentro de la hora:

Select * from PARO where cod_turno=:turno and inicio>=:hora and fin<=:horaMas1'

En esta consulta tendria los paros que se encuentran entre la hora actual y la siguiente:

Select * from PARO where cod_turno=:turno and inicio>=:hora and fin>:horaMas1'

Pero esta forma creo que es muy costosa, la pregunta es, existe algun metodo de hacer esto mas eficiente o tal vez tengo mal planteado el problema?, Espero que me deis un poco de luz en esto pq me urge mucho y no tengo muy claro si lo estoy encaminando correctamente, un saludo y muchas gracias de antemano por la molestia.

rastafarey 14-05-2005 00:16:24

Resp
 
Mira has simplemente una tabla de bloques trabajados

Con Id emepleado, Inicio, Fin
Ejempl

Id empleado Inicio Fin
1 8:00 11:00 3 hora
1 1:00 5:00 4 horas

Te dice que trabajo 7 horas
ha recuerda usar un campo fechaparaq que sepas que dia es.

O pudes usar una tabla de dias y que haga referancia a cleintes en este caso la tabla anterio aria referencia a dias.

Y coin esto aclras el problema.

Aun que todo depende de ti.


La franja horaria es GMT +2. Ahora son las 21:45:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi