相关疑难解决方法(0)

约会一天两天

我正在使用Java JDBC将日期写入sql server 2008,然后将其读回.
读取的日期始终比书面日期提前两天.

我正在使用预准备语句插入包含Date字段的行.日期值由以下人员提供:

java.sql.Date todaysDate = new java.sql.Date(System.currentTimeMillis()) ;
System.out.println(todaysDate.toString()) // -> 2012-07-02
ps.setDate(8, todaysDate);
Run Code Online (Sandbox Code Playgroud)

将日期写入db后,如果运行,sql server会显示正确的日期:

select date from table_name where date!=null // ->2012-07-02
Run Code Online (Sandbox Code Playgroud)

如果我通过JDBC运行相同的查询,则使用从结果集中检索日期值

java.sql.Date sqlDate = rs.getDate("date") ;
sqlDate.toString() // ->2012-06-30
Run Code Online (Sandbox Code Playgroud)

插入的行是表中唯一具有非空日期的行,因此这似乎不是读取错误记录的情况.

我认为这将是一个众所周知的问题,但我可以通过谷歌搜索找到"两天休息"问题的唯一参考没有明确的答案.

有任何想法吗?

beeky(生活在过去)

java sql-server date jdbc

24
推荐指数
2
解决办法
7970
查看次数

SQL Server中的日期提取问题

我正在尝试列出使用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();
}
Run Code Online (Sandbox Code Playgroud)

假日对象有两个属性:一个字符串和一个日期(从数据库中检索后这个不正确).

java sql-server spring hibernate

6
推荐指数
1
解决办法
2656
查看次数

标签 统计

java ×2

sql-server ×2

date ×1

hibernate ×1

jdbc ×1

spring ×1