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.