Se eu acertar a pergunta, com
[:start, :end]
sendo seu intervalo de datas de interesse, você está procurando:select *
from event
where -- event started earlier, ends later
start <= :start and :start <= end
or -- event starts during [:start, :end]
:start <= start and start <= :end
or -- event ends during [:start, :end]
:start <= end and end <= :end;
Se você estiver procurando por um
:day
específico , use :day
como :start
e :day + 1 day
como :end
.