没有时间戳的HQL中的日期比较

San*_*osi 11 mysql datetime hibernate hql date

我必须在hibernate hql查询中比较两个日期.我在我的java bean中使用java.util.Date,并在mysql数据库中使用timestamp作为数据类型.

select t from Task t where t.modifiedDate > t.endDate;
Run Code Online (Sandbox Code Playgroud)

以上查询将时间与日期进行比较 如何在没有时间的情况下比较上述查询中的日期我该怎么做

car*_*tax 18

有关可用的日期函数,请参阅Hibernate文档

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

在第14.10节中注意这一行

second(...), minute(...), hour(...), day(...), month(...), and year(...)
Run Code Online (Sandbox Code Playgroud)

所以这应该工作

... where year(t.endDate) > year(t.startDate) 
    and month(t.endDate) > month(t.startDate)
    and day(t.endDate) > day(t.startDate)
Run Code Online (Sandbox Code Playgroud)

据报道,该解决方案满足了这个问题

 ... where DATE(t.endDate) > (t.startDate)
Run Code Online (Sandbox Code Playgroud)

  • 它适用于以下更改**其中DATE(t.endDate)>(t.startDate)** (2认同)