Hola
Tienes toda la razón, en los meses intermedios sobra la comparación de dias. Solo hay que modificar la condición
where para tener esto en cuenta.
Código:
select ...
from Tabla
where (extract(month from ...) between mes1 + 1 and mes2 -1) or
(extract(month from ...) = mes1 and extract(day from ...) >= dia1) or
(extract(month from ...) = mes2 and extract(day from ...) <= dia2) or
Saludos.