将日期插入数据库

时间:2017-05-05 00:14:28

标签: java mysql sql jdbc prepared-statement

我的代码现在似乎按预期工作,我似乎无法理解为什么。我试图用anotherDate + 14更新数据库中的日期。问题是所有更新的日期都具有相同的值。当我尝试调试它时代码工作,但我在db中得到了不同的代码结果。 这是代码:

String query="SELECT issueTime from issue";
    ResultSet rs=DatabaseHandler.getInstance().execQuery(query);
    try {
        while(rs.next()){
            java.sql.Date dbTime=rs.getDate("issueTime");
            java.sql.Date initialDBTime=dbTime;
            java.util.Date utilDate = new java.util.Date(dbTime.getTime());
            Calendar cal=Calendar.getInstance();
            cal.setTime(utilDate);
            cal.add(Calendar.DATE,14);
            utilDate= cal.getTime();
            dbTime=new java.sql.Date(utilDate.getTime());
            System.out.println("return date " + dbTime+ " Initial db time " + initialDBTime);
           String qu = "UPDATE issue SET return_date=? WHERE issueTime = ?";
            PreparedStatement pstmt=DatabaseHandler.getInstance().getConnection().prepareStatement(qu);
            pstmt.setDate(1,dbTime);
            pstmt.setDate(2, initialDBTime);
            pstmt.executeUpdate();

数据库结果:

Database results

更新:发现问题,我只从表中选择了issueTime。  改变了:

String query="SELECT * from issue";

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  

Issuetime和return_date具有DateTime格式,尝试使用Timestamp而不是Date。这是一个例子,如果你想增加14天:

// ...

if (result.hasErrors()) {
    return "redirectInfo";
} 

// ...
  

之前的表格截图:enter image description here

     

更新后的表格:   enter image description here