在使用PreparedStatement时遇到了一个奇怪的问题,我似乎无法弄清其背后的确切原因。 我使用setDate函数将日期设置为PreparedStatement,如下所示:
query = "UPDATE gantt_tasks SET date_column = ? WHERE id = 1";
connection = new MySqlConnection().getConnection();
PreparedStatement preparedStmt = connection.prepareStatement(query);
preparedStmt.setDate(1, java.sql.Date.valueOf("2013-09-04"));
这非常简单。但是,设置日期后,当我检查preparedStmt
对象时,将Date值设置为"2013-09-03"
,而不是我设置的实际日期值"2013-09-04"
。我在这里做错了什么?
我还注意到,使用setTime()函数时也会发生类似的问题。在那里,它减少了30分钟的时间,即当我通过"08:00:00"
时,它将值设置为"07:30:00"
任何帮助将不胜感激!谢谢!