El secreto está en cómo realices la comparación de las alternativas que deben cumplirse y simplificarlas.
Hay varias condiciones:
- Empieza y termina dentro del período.
- Empieza durante y termina después.
- Empieza antes y termina durante.
- Empieza antes y termina después (contiene al periodo).
Las tres primeras tienen una singularidad: Al menos una de las fechas cae dentro del período, y si lo piensas, con sólo determinar eso, alcanza.
La última es necesaria porque no está comprendido en ninguno de los casos anteriores.
Entonces, la cosa sería mas o menos:
Código MySQL:
Ver originalSELECT Fun_Codigo
, fecha_inicio
, fecha_termino
(fecha_inicio
< '$fecha1' AND fecha_termino
> '$fecha2'))