【发布时间】:2010-07-27 10:27:33
【问题描述】:
我正在使用 SQL Server 数据库和 Hibernate。我有以下与存储日期相关的问题:
我有以下代码:
String hql = "select user from User user where user.createDate = :date";
Query query = HibernateUtil.getSession().createQuery(hql);
Date date2 = DateHelper.getEndOfDay(new Date());//this returns 2010-07-27 23:59:59.999
query.setParameter("date", date2);
当我比较日期2010-07-27 23:59:59.999 时,我得到的结果有一个日期:2010-07-28 00:00:00.0。使用 setDate() 代替 setParameter() 返回保存日期在同一天的用户,这意味着小时、分钟等被丢弃。
休眠将日期映射到 java.util.Date 但在结果列表中,我猜一切都是时间戳,因为时间戳扩展了 java.util.Date。 在比较相等性时,您会建议怎样做才能获得好的结果?
【问题讨论】: