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

calcular fechas entre 2 rangos de fechas

Estas en el tema de calcular fechas entre 2 rangos de fechas en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/05/2008, 12:52
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
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.
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
  #2 (permalink)  
Antiguo 13/05/2008, 15:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
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.

Última edición por jurena; 13/05/2008 a las 15:47 Razón: he corregido errores de lógica...
  #3 (permalink)  
Antiguo 13/05/2008, 18:34
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
Re: calcular fechas entre 2 rangos de fechas

Hola, la verdad tu ejemplo me funciono de maravillas. Muchas gracias por tu ayuda.
JM
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
  #4 (permalink)  
Antiguo 14/05/2008, 10:45
Avatar de Ragher  
Fecha de Ingreso: octubre-2004
Ubicación: Rosario, Argentina
Mensajes: 81
Antigüedad: 20 años
Puntos: 0
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)
__________________
Pronexo.com Diseño web Rosario, San Lorenzo, Argentina
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 14:16.