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