HQL中的日期时间仅检查日期

时间:2013-09-17 18:00:24

标签: java hibernate hql

我有以下的hql查询:

Query query = session.createQuery("from Appointments where datetime < :now");
query.setDate("now", new Date());
listApps = query.list();

它只返回今天之前的记录(昨天,2天前等等) 但不是今天以前的记录。

数据库中的日期时间是DateTime类型,因此它包含日期和时间。

为什么此查询未返回当前时间之前的记录?

这是在我的实体中定义日期时间的方式:

@Temporal(TemporalType.TIMESTAMP)
private Date datetime;

1 个答案:

答案 0 :(得分:0)

改变
query.setDate("now", new Date());

  • query.setTimestamp("now", new Date());

或者:

  • query.setParameter("now", new Date());

将给定Date对象的日期(时间被截断)绑定到命名查询参数。

public Query setDate(String name, Date date);

将给定Date对象的日期和时间绑定到命名查询参数。

public Query setTimestamp(String name, Date date);