Как использовать EJBQL между запросами с двумя одинаковыми датами?

StackOverflow https://stackoverflow.com/questions/2020404

  •  19-09-2019
  •  | 
  •  

Вопрос

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

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

Есть ли способ заставить запрос работать, или мне просто запустить еще один запрос, когда две даты совпадают?

Вот запрос:

select o from CustomerOrder o 
where o.orderDate between :date_from and :date_to 
order by o.orderDate desc
Это было полезно?

Решение

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top