Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

validar que un rango de hora este dentro de otro

Estas en el tema de validar que un rango de hora este dentro de otro en el foro de Mysql en Foros del Web. Que tal!!!!!!!! Estoy desarrollando una aplicacion donde ingreso un rango de horas, y necesito retornar todos los registros que estan dentro de ese rango, como ...
  #1 (permalink)  
Antiguo 06/03/2009, 10:10
 
Fecha de Ingreso: octubre-2008
Mensajes: 35
Antigüedad: 15 años, 6 meses
Puntos: 0
validar que un rango de hora este dentro de otro

Que tal!!!!!!!!

Estoy desarrollando una aplicacion donde ingreso un rango de horas, y necesito retornar todos los registros que estan dentro de ese rango, como puedo hacer esto en mysql ?

gracias
  #2 (permalink)  
Antiguo 06/03/2009, 10:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 16
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: validar que un rango de hora este dentro de otro

pero de que manera ingresas el rango de horas? por separado? hora inicial y hora final? y de que tipo y con que formato estan tus registros de hora?

por que si son solo numeros puedes hacer la consulta de esta forma


SELECT * FROM tabla WHERE hora>5 and hora<20
  #3 (permalink)  
Antiguo 06/03/2009, 11:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 35
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: validar que un rango de hora este dentro de otro

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.
  #4 (permalink)  
Antiguo 06/03/2009, 13:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
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.
  #5 (permalink)  
Antiguo 06/03/2009, 13:33
 
Fecha de Ingreso: octubre-2008
Mensajes: 35
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: validar que un rango de hora este dentro de otro

Gracias por la sugerencia...

he probado la solución y se presenta un problema en casos como el siguiente:
Existe un registro con horainicio = 7 y hora fin a las 16
si voy a ingresar un registro que termine a las 7 o inicie a las 16 el <= o el >= me sigue recuperando el regisrto anterior, lo cual es incorrecto porque de las 6 a las 7 esta libre, pero si le quito el = la consulta no funciona bien.

gracias.
  #6 (permalink)  
Antiguo 06/03/2009, 14:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: validar que un rango de hora este dentro de otro

Díme qué tienes en la base y qué datos ingresas en el formulario, y cuál es el resultado. Estamos hablando de horas de un mismo día ¿no? Otra cosa es que dónde establecer los límites. Si termina a las 7, puede iniciar a las 7 ¿a eso te refieres? Pon algunos ejemplos más de errores y podremos depurar la consulta.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:46.