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

Duda con query ?

Estas en el tema de Duda con query ? en el foro de Mysql en Foros del Web. Tengo esta tabla (bs_reservacion) y esta tiene dos campos una se llama h_inicio y la hora h_fin, ambas mantienen informacion... Supongamos que el primer h_inicio ...
  #1 (permalink)  
Antiguo 25/09/2010, 18:47
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Duda con query ?

Tengo esta tabla (bs_reservacion) y esta tiene dos campos una se llama h_inicio y la hora h_fin, ambas mantienen informacion...

Supongamos que el primer h_inicio guarda este dao 8:00, con str_replace elimino el : y la vuelvo numero entero ... las hora son guardas asi 0:00 a 24:00

Ahora miren este registro

bs_hora_inicio---------bs_hora_fin
9:00--------------------11:30

Supangamos que un usuario X, hace una reservacion haciendo lo siguiente, quiere separar 9:00 a 10:00, mi idea es que traiga si esos datos ya existen y los muestre, pero no se me ocurre ocmo hacerlo

Última edición por HiToGoRoShi; 25/09/2010 a las 18:52
  #2 (permalink)  
Antiguo 25/09/2010, 19:26
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, 5 meses
Puntos: 2658
Respuesta: Duda con query ?

Todo el planteo es un poco confuso. No se termina de entender qué quieres decir con esto:
Cita:
quiere separar 9:00 a 10:00, mi idea es que traiga si esos datos ya existen y los muestre, pero no se me ocurre ocmo hacerlo
Por lo que parece, estás guardando la hora como un VARCHAR. Si es así, es un error. Las horas no se almacenan como VARCHAR sino como TIME y con TIME las operaciones son más sencillas.
Esto resulta incomprensible:
Cita:
Supongamos que el primer h_inicio guarda este dao 8:00, con str_replace elimino el : y la vuelvo numero entero ... las hora son guardas asi 0:00 a 24:00
En realidad, tal vez no lo sepas, pero el campo TIME no almacena los ":". Esos son una representación creadas por las interfases cuando se determina que el tipo de campo es TIME. A nivel de dato puro, los TIME, DATETIME y DATE son en realidad datos numéricos de doble precisión, y se almacenan como binarios, no como caracteres. Por esa misma razón sólo usan 8 bytes. Son las interfases las que interpretan el dato obtenido como fecha u hora.

Si quieres buscar los datos de inicio y fin que queden entre las 9:00 y las 10:00 y que incluya aquellos casos que terminan más tarde, en lugar de analizar ambos datos, simplemente tomas el primero:
Código MySQL:
Ver original
  1. FROM tabla
  2. WHERE h_inicio BETWEEN '09:00' AND '10:00';
__________________
¿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 27/09/2010, 10:39
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Duda con query ?

gracias hermanito, tu si ah :)

Etiquetas: query
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 21:04.