insert into tmpdata
values(1,'a',to_date('2002-12-16','yyyy-mm-dd')

解决方案 »

  1.   

    insert into tmpdata
    values(1,'a',to_date('2002-12-16','yyyy-mm-dd')
      

  2.   

    先看看你自己的机器的select * from v$NLS_Parameters;
      

  3.   

    肯定是你的机器的日期格式不正确!
    修改注册表oracle目录下的字符串 NLS_DATE_FORMAT 值为 YYYY-MM-DD HH24:MI:SS
      

  4.   

    insert into tmpdata
    values(1,'a',to_date('2002-12-16','yyyy-mm-dd')
      

  5.   

    除了上面的,还可以这样写
    insert into tmpdate 
    values(1,'a','16-12月-2002');
      

  6.   

    SQL> create table test(dd date);表已创建。SQL> select * from test;未选定行
    SQL> insert into test values(to_date('20041211','yyyy/mm/dd'));已创建 1 行。SQL> commit
      2  /提交完成。SQL> select * from test;DD
    ----------
    11-12月-04SQL>
      

  7.   

    insert into tmpdata
    values(1,'a',to_date('2002-12-16','yyyy-mm-dd'))
      

  8.   

    insert into tmpdata
    values(1,'a',to_date('20021216','yyyymmdd'))
      

  9.   

    这是因为to_date函数的两个参数的格式不一致而产生的该问题。例如SQL> insert into customer values('aaa','CA',1000,to_date('2002-12-16','yyyymmdd'));
    insert into customer values('aaa','CA',1000,to_date('2002-12-16','yyyymmdd'))
    这样就会出错。
    当两个参数格式一致时,就会正确了。