我需要从 MySQL 表中获取一些记录,该表的列 posted_date
是一个 Timestamp
。我需要仅通过比较月份来过滤记录。例如,我只想要本月发布的所有记录。
我按照此链接中给出的方式进行了尝试 Hibernate query date compare on year and month only
但是我得到以下错误
line 1:106: unexpected token: to_char
at org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:769)
如何在HQL中以月份为参数只与月份进行比较?
最佳答案
像这样使用 MONTH(...) HQL 函数:
select so from SomeObject so where MONTH(so.date) = MONTH(:date)
或(简单但与数据库无关——适用于 Oracle/PostgreSQL/H2)
select so from SomeObject so where TO_CHAR(so.date, 'MM') = :month_as_string
关于java - Hibernate查询日期只比较月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38842488/