sql="insert into student values('"+ID+"','"+name+"','"+df.format(new Date(year-1900,month-1,day))+"','"+party+"')";
我测试过,当month大于10的时候能够正常插入数据,但当它小于10的时候就会报错
提示为:“无效的月份”
表的情况如下 :

SQL> desc student;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ---------------------- 学号                                      NOT NULL VARCHAR2(4)
 姓名                                               VARCHAR2(10)
 出生日期                                           DATE
 政治面貌                                           VARCHAR2(8)顺便问一下:student表的‘出生日期’字段是DATE型的,而df.format()返回的String型的,为什么不会发生数据类型不兼容的问题呢?

解决方案 »

  1.   

    SimpleDateFormat dt = new SimpleDateFormat( "YYYY-MM-DD" );
    sql="insert into student values('"+ID+"','"+name+"',TO_DATE('"+df.format(new Date(year-1900,month-1,day))+"','YYYY-MM-DD'),'"+party+"')"; 
      

  2.   

    日期类型为什么用df.format(new Date(year-1900,month-1,day))
    如果是写函数,那么df.format()的返回值应该直接是个日期类型了你这样写最容易出错#
      

  3.   

    中文Oracle默认的时间格式: '10-7月-06'
    写成07月都会提示 “无效的月份”
      

  4.   


    insert into student2 values('1001','cc','13-1月-08','party'); 这样直接就可以插进去啊....不明白上面那个复杂的函数是什么...