MySQL - Consulta: Buscar registro entre dos campo de fechas

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 27 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Consulta: Buscar registro entre dos campo de fechas

Publicado por alvin (2 intervenciones) el 15/03/2017 17:10:13
Saludos, tengo una inquietud, quiero una consulta que me devuelva todos los registro entre dos campos de fecha en la base de datos. aquí le dejos una imagen de la tabla para mejor entendimiento.

tlavailability

1
2
3
SELECT tl_availability.idavailability, tl_availability.idroom, tl_availability.number_room, tl_room.name, tl_availability.price_per_person, tl_availability.price_extra_pack, tl_availability.price_child from tl_availability
INNER JOIN tl_room ON tl_availability.idroom= tl_room.idroom
WHERE tl_availability.date_from ='2017-03-10' AND tl_availability.date_to ='2017-03-31' AND tl_availability.idacc='2052'

Esta consulta funciona perfectamente, pero si cambio el valor de date_from a ='2017-03-11', ya no funciona, pero tengo un registros en tabla de date_from='2017-03-10 y date_to='2017-03-31'. entonces eso es lo que necesito, que me devuelva los registro de la fechas entre el 2017-03-10 a 2017-03-31.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip
Val: 98
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Consulta: Buscar registro entre dos campo de fechas

Publicado por kip (30 intervenciones) el 15/03/2017 17:16:14
Hola, deberias usar >= y <= asi:

1
WHERE tl_availability.date_from >= '2017-03-10' AND tl_availability.date_to <= '2017-03-31'

Pruebalo y cuentanos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 27 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Consulta: Buscar registro entre dos campo de fechas

Publicado por alvin (2 intervenciones) el 15/03/2017 18:20:11
Saludos amigo lo he probado y no hace lo que necesito, tal vez no me exprese bien. Explico:

Tengo la siguiente tabla

tlavailability

Hice lo que me dijiste, pero me devuelve solo cuando los dos campos de fecha enviados son exactamente iguales, no cuando hay una fecha entre medio de esas fechas.

1
2
3
SELECT tl_availability.idavailability, tl_availability.idroom, tl_availability.number_room, tl_room.name, tl_availability.price_per_person, tl_availability.price_extra_pack, tl_availability.price_child from tl_availability
INNER JOIN tl_room ON tl_availability.idroom= tl_room.idroom
WHERE tl_availability.date_from >='2017-03-10' AND tl_availability.date_to <='2017-03-31' AND tl_availability.idacc='2052'

Necesito el price_per_person(170) del idacc='2052' comprendido entre las fechas date_from='2017-03-10' y date_to='2017-03-31'.

Ejemplo: quiero reservar esa habitación desde(date_from='2017-03-12') hasta (date_to='2017-03-16'), como el periodo de fecha que quiero reservar, esta comprendido entre las fechas que hay disponibilidad con el precio a 170 (date_from='2017-03-10' y date_to='2017-03-31'. ), debe devolverme el price_per_person con un valor de 170. pero no devuelve nada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 953
Oro
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Consulta: Buscar registro entre dos campo de fechas

Publicado por leonardo_josue (414 intervenciones) el 16/03/2017 18:43:11
Hola alvin:

Tal como lo tienes sólo estás comparando una de las fechas, en realidad tienes que hacer dos comparaciones por separado, es decir, algo como esto:

1
2
3
('2017-03-10'  >= date_from and '2017-03-10' <= date_to)
AND
('2017-03-16'  >= date_from and '2017-03-16' <= date_to)

o si lo prefieres con el operador between

1
2
3
'2017-03-10'  between date_from and date_to
AND
'2017-03-16' between date_from and date_to

haz la prueba y nos comentas.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar