Как использовать 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 с двумя предложениями не должен иметь этой проблемы.

Другие вопросы по тегам