我有一个JPA命名查询,它接受两个日期,以便返回两个日期之间有日期列条目的记录。
如果我为开始日期和结束日期输入相同的日期,则不返回任何行,即使该日期有记录。
有没有办法让查询工作,还是我只是在两个日期相同时运行另一个查询?
以下是查询:
select o from CustomerOrder o
where o.orderDate between :date_from and :date_to
order by o.orderDate desc
答案 0 :(得分:4)
我倾向于将所有查询都运行为:
select fld from tbl
where date >= &start_date
and date <= &end_date;
我很少使用between
- 我使用的DBMS具有相同的性能,无论使用哪种方法。
我的建议是做一些时间,看看使用where ... and
代替where ... between
是否没有性能下降,然后再切换。
有些DBMS实际上排除了“端点”(第一个和/或最后一个),这可能就是你所看到的。双句子SQL语句不应该有这个问题。