Wenn ich die Frage richtig verstehe, mit [:start, :end]
Da Ihr Datumsbereich von Interesse ist, suchen Sie nach:
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;
Wenn Sie nach einem bestimmten :day
suchen , verwenden Sie :day
als :start
und :day + 1 day
als :end
.