当前位置: 首页 > 面试题库 >

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

祁鸿晖
2023-03-14
问题内容

我必须比较hibernatehql查询中的两个日期。我在我的Java bean中使用java.util.Date,并在MySQL数据库中将时间戳用作数据类型。

select t from Task t where t.modifiedDate > t.endDate;

上面的查询将时间与日期进行比较。我应该怎么做才能在没有时间的情况下比较上述查询中的日期。


问题答案:

有关可用的日期功能,请参见Hibernate文档。

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

在第14.10节中注意这一行

second(...), minute(...), hour(...), day(...), month(...), and year(...)

所以这应该工作

... where year(t.endDate) > year(t.startDate) 
    and month(t.endDate) > month(t.startDate)
    and day(t.endDate) > day(t.startDate)

报告为满足问题的解决方案是

 ... where DATE(t.endDate) > (t.startDate)


 类似资料:
  • 问题内容: 如何在Java中比较没有时间的日期? 此代码比较时间和日期! 问题答案: 尝试比较将时间更改为00:00:00的日期(使用此功能):

  • 问题内容: 在SQL语句中,如何比较保存为TIMESTAMP的日期和YYYY-MM-DD格式的日期? 例如: 我希望此查询返回指定日期中所有带有时间戳的行,但它仅返回具有午夜时间戳的行。 谢谢 问题答案: 您可以使用该函数提取时间戳记的日期部分: 但是,如果您在timestamp列上有索引,则这样做会更快,因为它可以利用索引:

  • 问题内容: 我在数据库中有时间戳,在应用程序中我有日期。我喜欢编写hibernate标准,以便hibernate可以提取所有与日期匹配的条目,而不是时间部分。例如 在数据库时间戳记中 2011-12-01 15:14:14 在应用程序中,我确实具有java.util.Date,默认情况下具有时间部分。 我的问题是,当我使用以下代码从数据库中搜索条目时,我什么也没得到 提前致谢 问题答案: 如果您正

  • 问题内容: 我需要将unix时间戳转换为日期对象。 我尝试了这个: 时间戳值为: 日期应该是“ 2019/07/30-22:30:00”(因为我是通过PHP获取的),但我却得到了。 应该怎么做? 问题答案: 对于,请乘以1000,因为java期望的是毫秒: 如果你已经有毫秒,那么 ;

  • 我有一个类似于。 我有一个数字,12作为参数值。我想做的是,我想将数字12与上述创建的时间和目标进行比较。我该怎么做呢。 我发现,在检索数据的过程中,Laravel会自动将这些创建的对象转换为碳对象。是否有一种方法可以在检索期间提取创建的_的月份部分? 显然,上面的代码不起作用。我发现正在做

  • 有一个表的日期列类型为VARCHAR2。此字段中的值格式为:2013-12-19T12:12:23.345000000Z我必须找出两个连续日期之间的差异。但是由于日期是字符串格式的,我首先将其转换为时间戳。我使用以下查询进行相同的查询。 如果在不包括where子句的情况下运行上述查询,它将显示正确的时间戳值。但是当我把where子句放进去的时候,它给出了错误ORA-01852秒必须在0到59之间。