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

Búsqueda por rango de horas

Estas en el tema de Búsqueda por rango de horas en el foro de Mysql en Foros del Web. Hola. De nuevo por aquí. Estoy haciendo un buscador de lineas de buses que parten dentro de un rango horario que se establece con dos ...
  #1 (permalink)  
Antiguo 15/01/2011, 10:09
 
Fecha de Ingreso: agosto-2010
Mensajes: 25
Antigüedad: 13 años, 7 meses
Puntos: 0
Búsqueda por rango de horas

Hola. De nuevo por aquí.
Estoy haciendo un buscador de lineas de buses que parten dentro de un rango horario que se establece con dos campos select con las veinticuatro opciones correspondientes (hora_sale - hora_llega). Previamente se eligen las ciudades de origen y destino, tambien con dos campos select. En la base de datos el campo hora es del tipo de dato TIME.

El problema es que si por ejemplo busco las lineas de bus que salen entre la hora 17 y 03 de la mañana no me devuelve ningún registro. Si busco entre 00 y 00 (para obtener todos) tampoco pasa nada. En el rango 00 a 23 aparecen casi todos, menos las lineas que parten entre 23 y 00 horas. De modo que mi búsqueda personalizada no funciona.

Les agradezco desde ya cualquier ayuda.
  #2 (permalink)  
Antiguo 15/01/2011, 11:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Búsqueda por rango de horas

Es probablemente un problema de lógica de la consulta, porque lo que estás tratando de obtener es un horario nocturno, que ocurre entre dos días, y en ese caso el BETWEEN no funciona porque el primer parámetro es mayor que el segundo.
Hay soluciones posibles (me ha tocado este tipo de consultas). Una sería:
Código MySQL:
Ver original
  1. FROM tabla
  2.       (HOUR(horasalida) BETWEEN 17 AND 23)
  3.       AND
  4.       (HOUR(horallegada) BETWEEN 0 AND 3);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 15/01/2011, 19:41
 
Fecha de Ingreso: agosto-2010
Mensajes: 25
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Búsqueda por rango de horas

Gracias gnzsoloyo. Lo que respondiste parecía la solución, incluso me parece que tendría que funcionar, pero por alguna razón no me anda.
Al principio me pareció que andaba pero después no funcionó igual.
Tal vez el problema esté en la configuración del PhpMyadmin que uso para administrar la BD, lo tengo en el EasyPHP.
El problemas sigue siendo que puedo ver los resultados si consulto salidas entre 7 y 17 hs por ejemplo, pero no me da ningún resultado si consulto por salidas desde las 17 a las 3 hs de la mañana.
La consulta está así:

WHERE
(HOUR (hora_sale) BETWEEN 17 AND 23)
AND
(HOUR (hora_sale) BETWEEN 0 AND 3)


Si alguien puede ayudarme se lo agradezco ya que me está trancando.

Última edición por la_nutria; 21/01/2011 a las 10:07

Etiquetas: horas, rango
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 22:44.