java - Hibernate查询日期只比较月份

标签 java mysql spring hibernate

我需要从 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/

相关文章:

java - 为什么这件事做不到呢?

java - 无法确定一段代码的错误在哪里

php - Json导入mysql

java - 使用 Spring Boot 在两个或多个 (Oracle) 数据库上使用多个存储过程?

java - Idea Intellij中的springframework源代码

java - 在servlet上上传 Canvas base64图像

java - jdbc 可以通过 SOCKS 代理连接到 Oracle 数据库吗?

MySQL Workbench 6.3 移动 Mysql 后找不到 Performance_schema

mysql - 从 SQL 结果中删除空值

java - 如何在没有嵌入式数据源配置的情况下在 spring boot 测试期间执行 `schema.sql`?