如何在具有两个相同日期的查询之间使用EJBQL?

时间:2010-01-07 13:01:17

标签: java jpa between ejbql

我有一个JPA命名查询,它接受两个日期,以便返回两个日期之间有日期列条目的记录。

如果我为开始日期和结束日期输入相同的日期,则不返回任何行,即使该日期有记录。

有没有办法让查询工作,还是我只是在两个日期相同时运行另一个查询?

以下是查询:

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

1 个答案:

答案 0 :(得分:4)

我倾向于将所有查询都运行为:

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

我很少使用between - 我使用的DBMS具有相同的性能,无论使用哪种方法。

我的建议是做一些时间,看看使用where ... and代替where ... between是否没有性能下降,然后再切换。

有些DBMS实际上排除了“端点”(第一个和/或最后一个),这可能就是你所看到的。双句子SQL语句不应该有这个问题。