Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-05-2005
manolop manolop is offline
Miembro
 
Registrado: may 2005
Posts: 109
Poder: 20
manolop Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 14-05-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
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.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:02:14.


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