当前日期查询不起作用HQL

Posted

技术标签:

【中文标题】当前日期查询不起作用HQL【英文标题】:current date query not working HQL 【发布时间】:2017-05-27 07:25:23 【问题描述】:

我在尝试使用休眠查询从数据库中检索今天日期之前的记录时遇到问题。

我的查询是。

Query q = getSession().createQuery("FROM News n where n.to_published_date<= 
          current_date order by n.to_published_date desc");
          return q.list();

此查询正在从数据库中获取所有记录,而我需要今天日期之前的记录。

【问题讨论】:

今天的日期之前会给你所有的,不是吗?您使用了&lt;=,而不是使用&lt; 来跳过今天的日期记录。 对我不起作用,我想要当前时间 5/27/2017 1:19:11 PM@N00bPr0grammer 之前的所有记录 【参考方案1】:

你能试试这样吗,如下图所示?

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String frmDate = format.parse(current_date);

Query q = getSession().createQuery("FROM News n where n.to_published_date<= :frmDate order by n.to_published_date desc")
                      .setTimestamp("frmDate ", current_date);
return q.list();

设置.setTimestamp() 应该可以解决您的问题!您可以根据需要更改日期格式 - 保存 Date 对象的方式。

希望这会有所帮助!

【讨论】:

以上是关于当前日期查询不起作用HQL的主要内容,如果未能解决你的问题,请参考以下文章

如何在带有 Oracle 数据库的 HQL 查询中使用当前日期?

使用名称中的当前日期和时间将图像保存到 sd 不起作用

如何使用 Hibernate Named Query (HQL) 在 MYSQL 的时间戳字段中搜索当前日期?

如何在沃森对话中提取当前日期

在sql中获取从当前日期起最近90天的记录

无法选择当前日期作为未来日期