Tengo una tabla de eventos que especifica un rango de fechas con los campos start_date
y end_date
. Tengo otro rango de fechas, especificado en el código, que define la semana actual como 'week_start' y 'week_end'.¿Cómo determinar si un rango de fechas ocurre en cualquier momento dentro de otro rango de fechas?
Me gustaría consultar todos los eventos de la semana. Los casos parecen ser: comienza
- Evento y termina dentro de la semana
- Evento comienza antes de la semana, pero termina dentro de la semana comienza
- de eventos dentro de la semana, pero termina después de la semana
- evento comienza antes de la semana y también termina después de la semana
- Eventos que ni residir dentro, ni superponerse a la semana en todos se ignoran
Estoy intentando encontrar una consulta que pueda manejar todos estos casos. Hasta ahora solo he podido obtener casos que manejan superposiciones semanales o eventos que son completamente internos; Esencialmente, demasiados registros, o ninguno en absoluto.
Este es un duplicado de http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlap que tiene una derivación rigurosa de la solución simple (solo 2 condiciones). –