在使用JDBC添加相同日期后,MySql给出了错误的日期

时间:2014-01-08 15:50:59

标签: mysql jdbc

我正在使用JDBC向我的数据库添加一些行,并且它们具有日期方面。

我在提交中添加的日期的GMT字符串是

  

2014年1月11日05:00:00 GMT

但是当我收回它时,我得到了这个:

  

2014年1月11日04:00:00 GMT

我提前1小时服务器,这可能是问题的一部分。我尝试使用日期时间和时间戳,但这些都没有解决我的问题。

我的JDBC查询如下所示:(它在Scala中)

        val statement = connection.prepareStatement("INSERT INTO `listings`(`track_id`, `date`, `position`) VALUES (?,?,?)");
        statement.setInt(1, trackId);
        statement.setDate(2,trackListing.date);
        statement.setInt(3, trackListing.position);
        statement.execute();

有没有办法避免这个问题?

1 个答案:

答案 0 :(得分:1)

事实证明,通过将setDate和getDate更改为setTimestamp和getTimestamp,我可以修复它。我最终只是将时间戳包装到日期以保持兼容性,使用:

   new java.sql.Date(rs.getTimestamp("date").getTime());

希望这有助于其他人在将来遇到同样的问题。