Использование BETWEEN
с датами в Oracle как правило, плохая идея. Я вижу это все время, и большую часть времени люди ошибаются (как в принятом ответе выше). Даже когда они полностью понимают, что эти две даты включены, они все же делают логические ошибки, потому что они забывают о временных отметках.
ОП просит вчерашние даты. Следующий SQL показывает, что сегодня подпадает под "МЕЖДУ TRUNC (SYSDATE) - 1 и TRUNC (SYSDATE)"
with adate as (
select trunc(sysdate) today from dual
) select today from adate where today between trunc(sysdate) -1
and trunc(sysdate);
16-Apr-15 00:00:00 [возвращает запись на сегодняшний день]
Я считаю, что проще быть правильным с датами, когда вы более четко о конечных точках:
SELECT * from your_table
WHERE fnxs.FECHA_INGRESO >= TRUMC(SYSDATE) - 1
AND fnxs.FECHA_INGRESO < TRUNC(SYSDATE);
при приглядевшись, оп дата, как колонна может быть VARCHAR2 (по-прежнему может быть дата который был неявно включен в t он сравнил его). Если это VARCHAR, то его необходимо сначала преобразовать (используя соответствующую строку формата):
SELECT * FROM your_table
WHERE TO_DATE(fnxs.FECHA_INGRESO, 'DD-MON-YY') >= TRUMC(SYSDATE) - 1
AND TO_DATE(fnxs.FECHA_INGRESO, 'DD-MON-YY') < TRUNC(SYSDATE);
Действительно ли вы хотите, чтобы вчерашние записи? Вы приняли ответ, который может вернуть сегодняшние записи. – Gerrat
Не храните даты в столбцах 'varchar'. Вы должны это исправить как можно скорее. –