Foros del Web » Programando para Internet » PHP »

Comparar si un rango de fechas tiene 1 solo día dentro de otro rango

Estas en el tema de Comparar si un rango de fechas tiene 1 solo día dentro de otro rango en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/07/2012, 08:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 36
Antigüedad: 15 años, 7 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.
  #2 (permalink)  
Antiguo 27/07/2012, 08:48
Avatar de exitoso23487  
Fecha de Ingreso: enero-2009
Mensajes: 49
Antigüedad: 15 años, 3 meses
Puntos: 8
Respuesta: Comparar si un rango de fechas tiene 1 solo día dentro de otro rango

Buenas, abajo esta uno que uso, para un caso idéntico al tuyo.

ausencias.fecha_start BETWEEN '2012-07-01' AND '2012-07-31' OR
ausencias.fecha_end BETWEEN '2012-07-01' AND '2012-07-31' OR
'2012-07-01' BETWEEN ausencias.fecha_start AND ausencias.fecha_end OR
'2012-07-31' BETWEEN ausencias.fecha_start AND ausencias.fecha_end

Espero te sirva.
  #3 (permalink)  
Antiguo 27/07/2012, 09:01
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: Comparar si un rango de fechas tiene 1 solo día dentro de otro rango

http://www.vijayjoshi.org/2011/09/07...2-date-ranges/
http://ryanfarley.com/blog/archive/2004/08/19/966.aspx
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **

Etiquetas: formulario, rango, registro, sql, usuarios
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 19:11.