Ver Mensaje Individual
  #24 (permalink)  
Antiguo 05/02/2011, 10:14
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 10 años, 6 meses
Puntos: 300
Respuesta: FAQ's de MySQL

Pregunta: buscar si un rango de fechas comparte uno o más días con otro rango de fechas
búsquedas por eje. sobre reservas de hotel que se hacen entre dos fechas para averiguar con un rango de fechas qué habitaciones estarían ocupadas al menos un día de los del rango de fechas de la reserva. Llamaremos campofechainiciores y campofechafinres a los campos de la tabla reservas, y @fechainiciocons y @fechafincons a las variables que se cargan desde formulario para realizar la búsqueda.
Respuesta:
Código MySQL:
Ver original
  1. SELECT * FROM `reservas`
  2.   WHERE @fechainiciocons<=campofechafinres AND @fechafincons >= campofechainiciores

La lógica es la siguiente:si la primera fecha es anterior o igual a la fecha final de reserva y a la vez la fecha final es mayor o igual que la fecha de inicio de reserva, hay al menos un día en común. Nos lo hizo ver Avatar810 en un post
http://www.forosdelweb.com/f86/selec...fechas-693114/