Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/03/2009, 13:17
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: validar que un rango de hora este dentro de otro

Cita:
Iniciado por juzapt Ver Mensaje
Gracias por responder...

las horas se ingresan por separado, el usuario las elige y el formato es 'hh:mm:ss' , la consulta me debe retornar todos los registros con los que las fechas ingresadas tienen conflicto. Por ejemplo:
tengo un registro con hora inicial 10 y hora final 16
otro con hora inicial 8 y hora final 10

y deseo ingresar un registro que tenga:
hora inicial 9 y hora final 11

entonces se debe retornar los dos registros que se cruzan con el.

si tienes campohorainicio, campohorafin, y en el formulario introduces horainicio y horafin
La lógica es la siguiente:

Si horainicio es mayor o igual que campohorainicio, horainicio debe ser también menor o igual que campohorafin; si horainicio es menor o igual que campohorainicio, horafin debe ser igual o mayor que campohorainicio

select * from tabla where (horainicio<= campofechainicio AND horafin>= campofechainicio) OR (horainicio>= campofechainicio AND horainicio<= campofechafin)

Con datos absolutos:

select * from tabla where (09:00:00 <= campofechainicio AND 11:00:00 >= campofechainicio) OR (09:00:00>= campofechainicio AND 09:00:00 <= campofechafin)

No he hecho comprobaciones, pero esa es la lógica, creo.