Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Bases de Datos General (http://www.forosdelweb.com/f21/)
-   -   calcular fechas entre 2 rangos de fechas (http://www.forosdelweb.com/f21/calcular-fechas-entre-2-rangos-fechas-586042/)

Ragher 13/05/2008 12:52

calcular fechas entre 2 rangos de fechas
 
Hola a todos, quiero hacer una consulta sql pero no doy con la tecla. En una bd tengo dos campos de tipo fecha (fechadesde y fechahasta) para manejar periodos de reservas.

Ejemplo:

nombre | fechadesde | fechahasta
habitacion1 |2008/05/13 | 2008/05/15

Para mi ejemplo necesitaria una consulta que me diga que las fechas 2008/05/13, 2008/05/14 y 2008/05/15 se encuentran ocupadas para la habitacion1 para asi no volver a alquilarla dentro de ese periodo de fechas pero como les dije antes no doy con la tecla.

Preguntando de otra manera. Como hago para saber si un rango de Fechas fecha1, fecha2 esta dentro de otro rango de fechas fech1 y fech2 mediante SQL.

Agradezco de antemano la ayuda de los expertos de este foro.

jurena 13/05/2008 15:25

Re: calcular fechas entre 2 rangos de fechas
 
Se me ocurre a bote pronto que esta sintaxis te selecciona el rango
SELECT fechadesde, fechahasta, habitacion from reserva where habitacion = 1 AND ('2008-05-01' <= fechadesde AND '2008-05-06' >= fechadesde) OR ('2008-05-01' >= fechadesde AND '2008-05-01' <= fechahasta)

La idea es ver que si la fechadesde de la nueva reserva es inferior a la fechadesde de la reserva anterior, la fechahasta de la nueva reserva debe ser mayor o igual que la fechadesde de la reserva anterior para que haya coincidencia; y si la fechadesde de la nueva reserva es mayor o igual que la fechadesde de la reserva anterior esa fecha desde debe ser menor o igual que la fechahasta de la reserva anterior para que haya coincidencia.

De todas formas, imagino que habrá mejores soluciones para esto. No obstante, encontrarla la encuentra.

Ragher 13/05/2008 18:34

Re: calcular fechas entre 2 rangos de fechas
 
Hola, la verdad tu ejemplo me funciono de maravillas. Muchas gracias por tu ayuda.
JM

Ragher 14/05/2008 10:45

Re: calcular fechas entre 2 rangos de fechas
 
en realidad a la consulta le faltaba algo. Terminada quedaría asi:

SELECT fechadesde, fechahasta, habitacion from reserva where habitacion = 1 AND ('2008-05-01' <= fechadesde AND '2008-05-06' >= fechadesde) OR habitacion = 1 and ('2008-05-01' >= fechadesde AND '2008-05-01' <= fechahasta)


La zona horaria es GMT -6. Ahora son las 20:55.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.