Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 13-may-2008, 12:52   #1 (permalink)
Ragher está en el buen camino
 
Fecha de Ingreso: octubre-2004
Mensajes: 56
Enviar un mensaje por MSN a Ragher
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 y Sistemas de gestión
Ragher está desconectado   Responder Citando
Antiguo 13-may-2008, 15:25   #2 (permalink)
jurena tiene algunos puntos positivos de karma
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 790
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-may-2008 a las 15:47. Razón: he corregido errores de lógica...
jurena está desconectado   Responder Citando
Antiguo 13-may-2008, 18:34   #3 (permalink)
Ragher está en el buen camino
 
Fecha de Ingreso: octubre-2004
Mensajes: 56
Enviar un mensaje por MSN a Ragher
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 y Sistemas de gestión
Ragher está desconectado   Responder Citando
Antiguo 14-may-2008, 10:45   #4 (permalink)
Ragher está en el buen camino
 
Fecha de Ingreso: octubre-2004
Mensajes: 56
Enviar un mensaje por MSN a Ragher
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 y Sistemas de gestión
Ragher está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 03:11.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93