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

query pasando dos fechas a comparar aotras dos fechas

Estas en el tema de query pasando dos fechas a comparar aotras dos fechas en el foro de Mysql en Foros del Web. Hola, he estando intentando varias cosas que he leido en el buscador del foro y lo que quiero es pasar dos fechas mediante un form ...
  #1 (permalink)  
Antiguo 30/05/2008, 19:48
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
query pasando dos fechas a comparar aotras dos fechas

Hola, he estando intentando varias cosas que he leido en el buscador del foro
y lo que quiero es pasar dos fechas mediante un form y comparar si esa entervalo de "fecha inicio" y "fecha fin" (reservas habiraciones) esta ya ocupado en los campos de la BD que tengo como fecha_inicio y fecha_fin

lo que intente ultimo fue:

Código PHP:
SELECT FROM reserva WHERE 'tu_fecha' NOT (BETWEEN fecha_inicio AND fecha_fin) AND id_habitacion=3
pero no me hace lo que quiero

Gracias a todos por vuestra sugerencias o enlaces que me podais facilitar

Un saludo
  #2 (permalink)  
Antiguo 30/05/2008, 23:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: query pasando dos fechas a comparar aotras dos fechas

Si los datos de fecha del formulario entran en el orden adecuado año-mes-dia y lo que buscas son las habitaciones entre cuya fecha_inic y fecha_fin de la base no haya ningún día que coincida con ningún otro del rango fechainicio y fechafin que incluyes en el formulario, prueba a ver si esto puede servirte

SELECT habitacion FROM reservas WHERE habitacion NOT IN (SELECT DISTINCT habitacion from reserva where (fechainicio<= fecha_inic AND fechafin>= fecha_inic) OR (fechainicio>= fecha_inic AND fechainicio<= fecha_fin))

La idea es que el rango entre las fechas no tenga ningún punto en común, y para eso hay que evitar las fechas coincidentes. Para que haya coincidencia, si la fechainicio es anterior o igual a fecha_inic, la fechafinal, debe ser mayor o igual que la fechainicio. Y si la fechainicio es posterior a fecha_inic, la fechainicio debe ser al mismo tiempo menor que la fecha_fin para entrar en ese rango.

Es sólo una propuesta. Compruébala.
  #3 (permalink)  
Antiguo 31/05/2008, 09:03
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: query pasando dos fechas a comparar aotras dos fechas

Lo mirare, muchas gracias, parece que es lo que busco

Un saludo
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 11:06.