Если тип данных столбца равен TIMESTAMP
, как ОП написала в комментарии к превосходному ответу Сандры Росси, тогда на самом деле требуется три преобразования, чтобы сделать выбор должным образом.
- поворот первый параметр выбора (между ...) в дату
- превращает второй параметр выбора (между ... и b) в дату
- , превращая столбец отметки времени
DocDate
в дата
Это выглядит так:
select
*
from
OPDN A
where
to_date(A."DocDate") between to_date('01/01/2020', 'MM/DD/YYYY')
and to_date('01/31/2020', 'MM/DD/YYYY');
Преобразование параметров выбора с помощью строк формата должно быть очевидным, и в результате получается та же информация в SQL тип данных date.
Третье преобразование (to_date(a."DocDate")
) может быть неожиданным, но довольно важным.
Способ выбора означал для работы, чтобы включить все от самого начала периода выбора до самого конца. Если входные фильтры просто конвертируются в метки времени, то они будут иметь компонент времени 00:00
(полночь), так как не предоставлено никакой информации о времени суток.
Это приведет ко всем значениям "DocDate" после полночь будет исключено.
Правильный уровень сравнения здесь date , поэтому "DocDate" также необходимо преобразовать в тип данных date
без учета часов.
ps I только что понял, что критерии выбора даны в формате MM/DD/YYYY
, что, вероятно, является причиной ошибки преобразования ОП, полученной ранее.