我试图列出使用SQL Server在表中注册的日期,但是我的问题是我提取的所有日期与表中的日期相差2天。
例如,我在数据库中得到了2012-12-25,当我检索它并将其转换为Java.util.Date时,它变成了2012-12-23 …
我在另一个表中的日期上有工作正常的进程。
我正在使用SQL Server 2008,Hibernate 3和Spring 3。
编辑:
该表的列数据类型是日期,我正在使用hibernate进行检索,因此这是我的hibernate查询调用:
public List<Holiday> retrieveAllHolidays() { return (List<Holiday>) sessionFactory.getCurrentSession().createQuery("from Holiday") .list(); }
假日对象有两个属性:一个字符串和一个日期(从数据库中检索后,这是不正确的)。
该问题与JDBC驱动程序的JRE 7支持有关(getDate()函数存在问题)。
有关更多信息,请参见这篇文章:Microsoft JDBC驱动程序团队博客
再次感谢马丁·史密斯(Martin Smith)指出了另一个问题!