更新数据库中错误的未来日期

时间:2014-10-07 12:07:59

标签: java oracle

我正在使用JDBC更新oracle 11 g中的日期我在一个文件中读取日期并在DB中更新日期到此日期,最后一些日期更新正确,而某些日期更新到未来日期(2015/2016日期) ).Even文件不能包含大于sysdate的日期。当我在更新之前打印日期时它正确打印但是当我在数据库中检查时它显示错误的日期。我正在使用以下查询

   update data set IBOOLEAN1=?,LASTACTIVITYDATE=?,OPENDATE=? where SEMAIL=? and SEGMENTNAME='EDU'  
  prepareStatement.setInt(1, 1);
  DateFormat dFormat = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss");
   Date openDate = dFormat.parse(oldStringDate);
  timeStm = new Timestamp(newDate.getTime());
  prepareStatement.setTimestamp(2, timeStm);
  prepareStatement.setTimestamp(3, timeStm);
  prepareStatement.setString(4, emailAddress);

你能帮我解决这个问题.. ??

1 个答案:

答案 0 :(得分:0)

我不知道这是否解决了这个问题,因为你需要提供更多细节,但是这个:

SimpleDateFormat("MM/dd/yyyy hh:mm:ss");

不正确。由于MM表示MONTH NUMBER,而时间部分中的MINUTES格式为MI

更新添加了测试用例

SQL> SELECT TO_CHAR(SYSDATE,'mm') mm,
  2         TO_CHAR(SYSDATE,'mi') mi
  3    FROM dual
  4  /

MM MI
-- --
10 17