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

标签 java jpa between ejbql

我有一个 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/

相关文章:

mysql - 如何从两个日期之间的mysql查询中获取数据?

java - 如何拆分此函数以降低认知复杂度?

java - 最大独立 JVM 进程数

java - 用于访问 Java Web 服务的 gSOAP C 客户端

postgresql - 带有 GlassFish 4 和 PostGIS 的 JPA 实体

java - 日期范围内的日期范围

java - JVM 不能使用大页面内存,因为它没有足够的权限将页面锁定在内存中

java - 如何修改使用 jhipster 生成的现有实体?

java - 使用 Oracle 表分区的 JPA 或 Hibernates?

mysql - 以定义的日期时间格式获取给定时间之间的今天值