我有一个 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
- 无论使用哪种方法,我使用的 DBMS 都具有相同的性能。
我的建议是做一些计时,看看使用 where ... and
而不是 where ... between
是否没有性能下降,然后切换如果不是。
一些 DBMS 实际上排除了您可能看到的“端点”(第一个和/或最后一个)。双子句的SQL语句应该没有这个问题。
关于java - 如何在具有两个相同日期的查询之间使用 EJBQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2020404/