Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2012, 08:41
imprentapc
 
Fecha de Ingreso: septiembre-2008
Mensajes: 36
Antigüedad: 15 años, 8 meses
Puntos: 4
Comparar si un rango de fechas tiene 1 solo día dentro de otro rango

Hola Amigos,

Os explico, estoy intentando hacer una consulta con dos rangos de fechas.

El primer rango lo tengo en base de datos en dos campos DATE (fecha_inicio y fecha_final).

El segundo rango, es un rango que introduce el usuario desde un formulario.

Lo que necesito, es que la consulta SQL me devuelva todos los registros, donde con que 1 solo día del rango de fechas comprendido entre los campos fecha_inicio y fecha_final, este entre el rango de fechas introducido por el usuario.

He intentado con BETWEEN, pero no me sirve, porque con que fecha_inicio sea inferior a la fecha inicial introducida por el usuario o fecha_final sea mayor a la fecha final introducida por el usuario, ya no me sirve.

Voy a poner tres ejemplos (2 true y 1 false) para explicarme mejor:

TRUE
Rango de fechas en la base de datos:
02/02/2012 - 30/11/2012
Rango de fechas introducido por el usuario:
01/07/2012 - 31/07/2012
Comentario: Todos los días comprendidos entre el 01/07/2012 y el 31/07/2012 ambos rangos comparten fechas.

TRUE
Rango de fechas en la base de datos:
08/01/2012 - 30/17/2012
Rango de fechas introducido por el usuario:
29/11/2012 - 12/03/2012
Comentario: Todos los días comprendidos entre el 08/01/2012 y el 12/03/2012 ambos rangos comparten fechas.

FALSE
Rango de fechas en la base de datos:
20/01/2012 - 20/02/2012
Rango de fechas introducido por el usuario:
07/03/2012 - 27/07/2012
Comentario: No se comparte ni 1 solo día.

No se si me he podido explicar bien.

Espero que alguien me pueda ayudar.

Un saludo y muchas gracias.