hibernate - 使用HQL查询日期而忽略Oracle上的时间

标签 hibernate date timestamp hql

我有一个表(在 Oracle 9 及更高版本中),我需要在其中使用 Hibernate 查找给定日期的所有条目。这些条目具有时间戳(数据类型为“日期”)。有些条目有时间,有些条目只有日期。这是无法更改的,因为这是我无法更改的其他应用程序的输出。在 SQL 中我会写一些类似的东西

SELECT * FROM table WHERE trim(table.date) = to_date('11.06.2009')

获取我正在查找的日期的所有条目。我想知道如何让 Hibernate 使用 HQL 来做到这一点。我知道我可以在 Hibernate 中使用 SQL 查询,但这似乎不太干净。有没有办法做到这一点?如果可能的话,这种方式也应该适用于时间戳为数据类型的非 Oracle 数据库。

最佳答案

您可以在 HQL 中添加两个约束,一个指定大于或等于您正在搜索的日期的开始时间,另一个指定小于第二天。

table.date >=11.06.2009 AND table.date < 11.07.2009

HQL(以及 SQL)还允许:

table.date between 11.06.2009 AND 11.07.2009

记住between始终是包容性的,这意味着它既是 >=<=分别。
更多详情请参阅between这里:http://www.coding-dude.com/wp/java/hibernate-java/hibernate-hql-between-expression/

关于hibernate - 使用HQL查询日期而忽略Oracle上的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/980366/

相关文章:

javascript - 使用moment JS计算准确的时间差

java - Spring boot JPA不使用findById返回现有结果

hibernate 映射异常 : Repeated column in mapping for entity

java - 在java中维护线程中变量的值

sql-server-2008 - 查找上一个星期日日期算法

html - 如何将日期输入占位符对齐到 Firefox 的中心

php mysql 时间戳

java - hibernate 。删除对象

根据R中的日期变量重新组织多个变量

javascript - OADate 到 Javascript 中的毫秒时间戳