Первая проблема с вашим запросом состоит в том, что вы выполняете сравнение строк на дату.Используйте to_date
вместо to_char
и позвольте Oracle помочь вам.
SELECT
to_date('2010-07-20 19:15:11', 'YYYY-MM-DD HH24:MI:SS') AS orig_date
, to_date('2010-07-20 19:15:11', 'YYYY-MM-DD HH24:MI:SS') - 1 / 24 / 4 AS fifteen_min_prior
, to_date('2010-07-20 19:15:11', 'YYYY-MM-DD HH24:MI:SS') + 1 / 24 / 4 AS fifteen_min_after
FROM dual;
Вывод:
ORIG_DATE FIFTEEN_MIN_PRIOR FIFTEEN_MIN_AFTER
------------------------- ------------------------- -------------------------
20-JUL-10 07:15:11 PM 20-JUL-10 07:00:11 PM 20-JUL-10 07:30:11 PM
Затем используйте эти даты в условии BETWEEN
всказуемое.См. Oracle date «Между» Запрос .
Мне не совсем понятно, что вы имеете в виду под «Тем не менее, для случаев, когда запись существует в сегодняшнюю дату, я хочу игнорировать проверку сравнения дат»в запросе. "Вы только что написали, что хотите исключить значения из текущего дня.Либо вы исключаете сегодняшние записи, либо нет.