formatdatatime返回的是字符串,你的birthday是date,当然插不进去
可考虑将日期形改为char(8)
对日期型的插入跟数据库的字符也有关不同的字符集, 日期表现形式也不一样

解决方案 »

  1.   

       用FORMATDATETIME返回类型不对.
       如果直接插入日期,本机日期格式和ORACLE的日期格式可能不同很容易出错
    为了插入正确的日期,可以在SQL语言中这样的写法是对的:
       TO_DATE('2001-11-13','YYYY-MM-DD')
       你的只要把日期字符串替换为FORMATDATETIME()的返回值就好了:
        ...... +''',TO_DATE('''+formatdatetime('yyyy-mm-dd',birthday.date)
               +''', 'YYYY-MM-DD')''+.......
            
        
      

  2.   

    我改过了,可是不能运行了,提示[error]:missing operator or semicolon,再帮我看一下吧mysql:='insert into e_pact (ecode,pactid,regdate,term,kind,source) '
           +'values ('''+ecode.text+''','''+pactid.text
           //以下是我改过的语句//
           +''',TO_DATE('''+formatdatetime('yyyy-mm-dd',birthday.date)
           +''','YYYY-MM-DD')'','''+term.text+''','''+kind.text
           +''','''+source.text+''') ';
      

  3.   

    哦,我知道了,应该是这样:
    TO_DATE('''+formatdatetime('yyyy-mm-dd',birthday.date)
          +''','’YYYY-MM-DD''),
    谢谢seewell和flyfk961
               
      

  4.   

    你的oracle 中date类型的格式是'yyyy-mm-dd',
    试一下 'dd-mmm-yy'