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

buscar en rango de fechas

Estas en el tema de buscar en rango de fechas en el foro de Bases de Datos General en Foros del Web. Hola, tengo una tabla donde guardo dos fechas (entrada y salida) en dos campos que pertenecen a un registro de otra tabla, la tabla quedaría ...
  #1 (permalink)  
Antiguo 19/10/2010, 14:28
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 6 meses
Puntos: 43
buscar en rango de fechas

Hola,
tengo una tabla donde guardo dos fechas (entrada y salida) en dos campos que pertenecen a un registro de otra tabla, la tabla quedaría así:

id id_inm entrada salida
1 1 2010-09-23 2010-09-30
2 1 2010-10-03 2010-10-08
3 91 2010-10-03 2010-10-08
4 1 2010-10-13 2010-10-19

lo que necesito hacer y no me sale, es una consulta en la cual yo le paso dos fechas una de entrada y otra de salida y me devuelva si existen registro en esa tabla o no. Vamos que lo que tengo que hacer es comprobar si no hay dias ocupados en el rango de fechas que le paso, para saber la disponibilidad de un inmueble.

Espero que se haya entendido, desde ya muchas gracias
  #2 (permalink)  
Antiguo 19/10/2010, 14:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: buscar en rango de fechas

Por ejemplo, así:
Código MySQL:
Ver original
  1. FROM tabla
  2.       (fechaentrada BETWEEN entrada AND salida)
  3.       OR
  4.       (fechasalida BETWEEN entrada AND salida);
O así:

Código MySQL:
Ver original
  1. FROM tabla
  2.       (fechaentrada BETWEEN entrada AND salida)
  3. FROM tabla
  4.       (fechasalida BETWEEN entrada AND salida);
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 19/10/2010, 18:23
Avatar de destor77  
Fecha de Ingreso: noviembre-2004
Ubicación: Gálvez, Santa Fe, Argentina
Mensajes: 2.654
Antigüedad: 19 años, 6 meses
Puntos: 43
Respuesta: buscar en rango de fechas

gracias ahora lo pruebo y cualquier cosa te aviso
  #4 (permalink)  
Antiguo 20/10/2010, 07:35
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: buscar en rango de fechas

otra opcion es esta :

select * from tabla
where
(fecha_entrada >= 'valor_entrada' and fecha_salida<= 'valor_salida')

saludos xD
  #5 (permalink)  
Antiguo 20/10/2010, 07:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: buscar en rango de fechas

Esa opción funciona si y sólo si el período por el que consultas está comprendido dentro de los que ya están guardados, pero no devuelve si hay cruzamientos.
Además, ten en cuenta siempre que si usas un rango definido por "A>= B AND C<=D", eso es BETWEEN en SQL...
Lo importante es recordar que los algoritmos internos de los DBMS son diferentes si usas >=/<=, que si usas BETWEEN, y el de BETWEEN está optimizado...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 20/10/2010, 08:09
Avatar de rigo_5834  
Fecha de Ingreso: julio-2009
Mensajes: 99
Antigüedad: 14 años, 9 meses
Puntos: 8
Respuesta: buscar en rango de fechas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Esa opción funciona si y sólo si el período por el que consultas está comprendido dentro de los que ya están guardados, pero no devuelve si hay cruzamientos.
Además, ten en cuenta siempre que si usas un rango definido por "A>= B AND C<=D", eso es BETWEEN en SQL...
Lo importante es recordar que los algoritmos internos de los DBMS son diferentes si usas >=/<=, que si usas BETWEEN, y el de BETWEEN está optimizado...

solo daba otra opción.

saludos

Etiquetas: fechas, rango
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 02:07.