Как использовать EJBQL между запросами с двумя одинаковыми датами? - PullRequest
1 голос
/ 07 января 2010

У меня есть запрос с именем JPA, который берет две даты, чтобы вернуть записи с записью в столбце даты между двумя датами.

Если я введу одну и ту же дату как для начальной, так и для конечной даты, она не вернет строк, даже если для этой даты есть записи.

Есть ли способ заставить запрос работать или я должен просто выполнить другой запрос, если две даты совпадают?

Вот запрос:

select o from CustomerOrder o 
where o.orderDate between :date_from and :date_to 
order by o.orderDate desc

1 Ответ

4 голосов
/ 07 января 2010

Я склонен выполнять все свои запросы как:

select fld from tbl
where date >= &start_date
  and date <= &end_date;

Я редко использую between - СУБД, которую я использую, имеет одинаковую производительность независимо от того, какой из этих методов используется.

Я бы посоветовал сделать несколько таймингов, чтобы увидеть, не происходит ли снижения производительности при использовании where ... and вместо where ... between, а затем переключиться, если нет.

Некоторые СУБД фактически исключают «конечные точки» (первую и / или последнюю), которые, вероятно, вы видите. Оператор SQL с двумя предложениями не должен иметь этой проблемы.

...