【问题标题】:hibernate HQL date difference休眠 HQL 日期差异
【发布时间】:2011-10-18 07:11:46
【问题描述】:

我想查找映射到对象 XYZ 的所有记录,条件如下 A 有日期字段 XyzDateTime(它的时间戳) 现在 currentTime -xyzDateTime > 20 我想选择记录

query = session.creatQuery(Select x from XYZ where :currentTime-xyzDateTime > 20 )
query.setParameter("currentTime",new Date())

这是正确的吗?
我可以用这种方式检查日期差异吗?

【问题讨论】:

  • "这对吗?" - 那么当你运行它时它会返回什么?

标签: java hibernate date hql


【解决方案1】:

这是不正确的。最简单的解决方案就是这样(根本不是最漂亮的解决方案)

Date twentyDaysInFuture = new Date(Calendar.getInstance().add(Calendar.DAY_OF_MONTH, 20).getTime());

query = session.createQuery("SELECT x FROM XYZ x WHERE xyzDateTime > :endDate").setParameter("endDate", twentyDaysInFuture);

【讨论】:

  • new Date(System.currentTimeMillis() + 86400000 * 12) 更简单——虽然也不是很漂亮
  • @Konstantin Pribluda:所有问题都有明显、简单和错误的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-13
  • 1970-01-01
  • 2012-01-18
  • 2016-09-23
  • 2019-07-16
  • 2013-12-27
相关资源
最近更新 更多