先将date型转换成string,
修改sql教本加入to_date
stmt.setString("yyyy-mm-dd");

解决方案 »

  1.   

    将Date转换成java.sql.Timestamp,问题就可以解决
      

  2.   

    话说的不好,应该是把Date用java.sql.Timestamp替代,问题就可以解决
      

  3.   

    oracle的Date类型包括年月日时分秒
    java.sql.Date可能并不支持时分秒,java.sql.Timestamp可以有时分秒
    如果你需要时分秒
    如此改写试试:
    String sql = "update web_lsdwxx set DWXX_YWSJ = ? where dwxx_no = '8126'";
    PreparedStatement stmt = con.prepareStatement(sql);
    java.util.Date now = new java.util.Date();
    java.sql.Timestamp  tt = new java.sql.Timestamp(now.getTime()) ;
    tt.setNanos(0);
    stmt.setTimestamp(1, dt);
    int rows = stmt.executeUpdate();
    ------------------------------------------
    还有,如果你要查询数据库的结果,请用查询
    select to_char(dwxx_ywsj,'yyyy-mm-dd') from web_lsdwxx where dwxx_no = '8126';
    不用to_char转换,oracle的year就是默认显示两位,这时候数据并没有错,只是没有显示出来