У вас есть несколько вопросов. Во-первых, запрос должен быть:
SELECT e.*
FROM events e
WHERE e.EVENT_DATE BETWEEN SINCE AND TTO;
Нет нужды конвертировать дату в дату. Единственная возможная причина - урезание даты до ближайшего дня (потому что даты Oracle имеют компоненты времени). Это лучше сделать как:
SELECT e.*
FROM events e
WHERE e.EVENT_DATE BETWEEN trunc(SINCE) AND trunc(TTO);
Что еще более важно, вы не можете (легко) делать то, что вы хотите. Не с хранимой процедурой, потому что они не возвращают наборы результатов. Не с целью, потому что они не параметризованы. Не легко с функцией - написание функций, которые возвращают «таблицу», довольно сложно в Oracle. Это не для непосвященных.