Я бы порекомендовал в Oracle:
select t.*
from my_table t
where t.product_number = 86354 and
period_v >= date '2019-01-01' and
period_v < date '2019-02-01';
Если вы храните строки , которые вы интерпретируете как даты, то вам следует исправить свою модель данных.Oracle - как и почти все другие базы данных - имеет тип для хранения дат, обычно называемый date
.Вы можете конвертировать значения на лету:
to_date(period_v, 'DD/MM/YYYY') >= date '2019-01-01' and
to_date(period_v, 'DD/MM/YYYY') < date '2019-02-01';
Хотя это можно сделать, я настоятельно рекомендую использовать правильный тип данных.
В MySQL вы удалили бы ключевое слово date:
select t.*
from my_table t
where t.product_number = 86354 and
period_v >= '2019-01-01' and
period_v < '2019-02-01';
Обратите внимание, что я убрал одинарные кавычки вокруг 86354
.Предположительно это номер.Лучше не смешивать типы.
Кроме того, для сравнения используются >=
и <
.Это сделано специально Приведенный выше код работает как с датами, так и с датами времени.