Прежде всего, вам следует явно преобразовать строку в дату, а не полагаться на неявное преобразование.Ваша строка в yyyy-mm-dd
не будет работать для некоторых людей, в зависимости от их параметра nls_date_format
.Вы можете преобразовать строку с помощью to_date()
, например, to_date('01/01/2018', 'dd/mm/yyyy')
.
Во-вторых, условие в выражении WHERE
должно содержать имя столбца, оператор (например, <
) и значение, которое мы сравниваем с,BETWEEN
также является оператором, который затем переводится в два условия: <=
и >=
.
Таким образом, простое перечисление столбцов не будет работать, так как в нем отсутствуют оператор и значение для сравнения.
Итак, если вы не хотите фильтровать по некоторым столбцам, просто не включайте его в предложение WHERE
.
В качестве альтернативы, если вы хотите, чтобы все эти столбцы были отфильтрованыс этими днями (, но названия столбцов предполагают, что они не являются датами .. ), вы можете написать:
WHERE (ACT.BANK_ACCOUNT_ID BETWEEN '2018-01-01' AND '2018-07-07') AND
(ACT.BANK_ACCOUNT_NAME BETWEEN '2018-01-01' AND '2018-07-07') AND
(BRA.STATE BETWEEN '2018-01-01' AND '2018-07-07') AND
(BRA.COUNTRY BETWEEN '2018-01-01' AND '2018-07-07') AND
(ACT.DESCRIPTION BETWEEN '2018-01-01' AND '2018-07-07') AND
(TRM.DUE_DAYS BETWEEN '2018-01-01' AND '2018-07-07')