Вы можете преобразовать эпоху Unix (количество секунд с 1 января 1970 г.) в следующую дату:
TO_DATE('01/01/1970', 'dd/mm/yyyy') + epoch_column / 60 / 60 / 24
Деление превращает эпоху в число дней, которые можно добавить кисходная дата.
Если вы хотите отфильтровать это за предыдущий месяц, то:
TO_DATE('01/01/1970', 'dd/mm/yyyy') + epoch_column / 60 / 60 / 24
BETWEEN ADD_MONTHS(TRUNC(sysdate, 'mm'), -1)
AND LAST_DAY(ADD_MONTHS(TRUNC(sysdate, 'mm'), -1))
Или еще лучше:
epoch_column
BETWEEN
(
ADD_MONTHS(TRUNC(sysdate, 'mm'), -1)
- TO_DATE('01/01/1970', 'dd/mm/yyyy')
) * 60 * 60 * 24
AND (
LAST_DAY(ADD_MONTHS(TRUNC(sysdate, 'mm'), -1))
- TO_DATE('01/01/1970', 'dd/mm/yyyy')
) * 60 * 60 * 24
Это решение должно быть болееэффективный, поскольку над фильтруемым столбцом не выполняется никаких операций, поэтому он должен иметь возможность использовать существующий индекс в epoch_column
.