oracle一个表有个字段是timestamp类型,然后在code中向其插入数据:
insert...values(to_timestamp('01OCT09 21:21:21:222','DDMONYY HH24:MI:SS.FF','nls_date_language=american'),然后报错说是:
ORA-01830: 日期格式图片在转换整个输入字符串之前结束原因是SS.FF应该用SS:FF,与21:222格式相一致,改了之后可以insert,但select时,使用:
select to_char(time_stamp, 'DDMONYY HH24:MI:SS.FF3','nls_date_language=american') from table;
这里是用.FF3,就可以select出来,insert和select时.FF和:FF格式不一样,这是为什么呢?谢谢!注:原先使用oracle9i时,insert与select都用.FF没有问题,后来改到10g,insert用.FF,select用:FF没有问题。

解决方案 »

  1.   

    格式是一样的。
    去我想是因为,insert的时候,你的格式必须是正确的,并且匹配的。
    但select的时候,你的格式即使不正确,但不影响系统的运行,不抛出错误而已
      

  2.   

    'nls_date_language=american'是不是语言造成的,数据库的和你插入的不一样
      

  3.   


    如果select时不抛出错误,那这种情况下应该还是有错误?但我运行后是可以正常输出的,难道它能自动转换?