SimpleDateFormat df=new SimpleDateFormat("yy-MM-dd");
    
    java.util.Date  cDate=df.parse(comedate.getText());   //comedate是jtextfield对象
          
    java.sql.Date  cd=new java.sql.Date(cDate.getTime());
          
    sql="update [eatperson] set comedate="+cd; //这里的comedate是数据库中一个datetime型的字段    //还有很多关于对文本框中的字符串进行日期转换的方法都用过,还是会出错.    写入数据库后,没有提示出错,但添加到数据库里的日期与我在文本框中所输入的日期不一样.
    
    比如:输入 2007-12-12 添加到数据库后就变成了 1905-06-07
          输入 1111-11-11 添加到数据库后就变成了 1902-12-26
          输入 0000-00-00 都变成了  1899-11-23
   真是头痛呀,各位大哥帮帮忙吧,谢谢!!

解决方案 »

  1.   

    String sql = "update [eatperson]   set   comedate=?";
    PreparedStatement pSta = connection.prepareStatement(sql);
    pSta.setDate(1, cd);pSta.executeUpdate();祝你成功!
      

  2.   

    楼上做法看起来不错,楼主你那样做是把Date类型的数据当字符串处理了,最后拼出来的是一条错误的字符串,不信你打印出来拷到数据库直接执行一下试试?
      

  3.   

        问题我发现了!不过这个问题的解决方案却出乎我的意料:"update   [eatperson]  set  comedate='"+cd+"'";
        
        要这样写入数据库才不会出错,但我的comedate字段明明是日期型呀?怎么这样都可以解决??    如果我要利用这个字段进行日期上的运算会不会出错呢?    请大哥们多多指点!!
      

  4.   

    不同的数据库对日期型的处理不一样.我们用的是ORACLE9I.设置时间为DATETIME型.在插入时,要用到TO_DATE