Как использовать EJBQL между запросами с двумя одинаковыми датами?
У меня есть запрос JPA с именем, который берет две даты, чтобы вернуть записи с записью в столбце даты между двумя датами.
Если я ввожу одну и ту же дату как для начальной, так и для конечной дат, она не возвращает строк, даже если для этой даты есть записи.
Есть ли способ заставить запрос работать, или я должен просто выполнить другой запрос, если две даты совпадают?
Вот запрос:
select o from CustomerOrder o
where o.orderDate between :date_from and :date_to
order by o.orderDate desc
1 ответ
Я склонен выполнять все свои запросы как:
select fld from tbl
where date >= &start_date
and date <= &end_date;
Я редко пользуюсь between
- СУБД, которую я использую, имеет одинаковую производительность независимо от того, какой из этих методов используется.
Я бы посоветовал сделать несколько таймингов, чтобы увидеть, нет ли снижения производительности при использовании where ... and
вместо where ... between
а затем переключиться, если нет.
Некоторые СУБД фактически исключают "конечные точки" (первую и / или последнюю), которые, вероятно, вы видите. Оператор SQL с двумя предложениями не должен иметь этой проблемы.