我有以下的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;
答案 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);