【问题标题】:Issue with a date extraction in SQL ServerSQL Server 中的日期提取问题
【发布时间】:2012-02-23 04:16:07
【问题描述】:

我正在尝试使用 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();
}

holiday 对象有两个属性:一个 String 和一个 Date(从数据库中检索到这个是不正确的)。

【问题讨论】:

  • 表中的列数据类型是什么?你如何检索日期?您能否展示演示该问题的最小程序的代码?
  • 尝试使用日历对象..你需要用type='java.util.Calendar'更新你的映射问题通常是java.util.Date对象..我曾经遇到过这样的问题,然后我切换了到Caneldar
  • 我刚刚尝试了 Calendar 对象,我遇到了同样的问题,我提取的日期格式不同,但它们仍然是错误的。
  • 谢谢你马丁!我已经下载了修复程序并应用了它......它现在可以工作了:)

标签: java sql-server hibernate spring


【解决方案1】:

该问题与 JDBC 驱动程序的 JRE 7 支持有关(getDate() 函数存在问题)。

更多信息请看这篇文章:Microsoft JDBC driver team blog

再次感谢 Martin smith 指出其他问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 1970-01-01
    • 2023-01-18
    相关资源
    最近更新 更多