Java 更新数据库中错误的未来日期
我正在使用JDBC更新oracle 11 g中的日期。为此,我读取了一个文件中的日期,并将数据库中的日期更新到此日期,最后一些日期正确更新,而一些日期更新到2015/2016年的未来日期。即使是文件也不能包含大于sysdate的日期。当我在更新日期之前打印日期时,它会正确打印,但当我签入数据库时,它会显示错误的日期Java 更新数据库中错误的未来日期,java,oracle,Java,Oracle,我正在使用JDBC更新oracle 11 g中的日期。为此,我读取了一个文件中的日期,并将数据库中的日期更新到此日期,最后一些日期正确更新,而一些日期更新到2015/2016年的未来日期。即使是文件也不能包含大于sysdate的日期。当我在更新日期之前打印日期时,它会正确打印,但当我签入数据库时,它会显示错误的日期 update data set IBOOLEAN1=?,LASTACTIVITYDATE=?,OPENDATE=? where SEMAIL=? and SEGMENTNAME
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);
你能帮我解决这个问题吗?。我不知道这是否解决了问题,因为你需要提供更多的细节,但这: 简化格式mm/dd/yyyy hh:mm:ss 这是不正确的。因为,MM表示月数,时间部分的分钟格式为MI 更新添加的测试用例
SQL> SELECT TO_CHAR(SYSDATE,'mm') mm,
2 TO_CHAR(SYSDATE,'mi') mi
3 FROM dual
4 /
MM MI
-- --
10 17
您能给我们显示一些输入日期和插入的值吗?在您的代码中,您使用newDate作为参数,这在这个代码片段中没有定义。请再添加一些上下文。不,格式字符串似乎正确,请参阅:@1010,您能告诉我如何在分钟内使用MM格式吗?好的,MM是月的格式掩码,MI是分钟的格式掩码。对于SimpleDataFormat,MM表示年中的月,MM表示分钟,而不是MI。格式字符串在java端,我已签入数据库,但某些日期已正确更新,如文件中所示,未更改分钟和月份。