'26-9月 -13 10.23.00.000 上午'是字符串不是timestamp类型。楼主应加上to_timestamp,例如insert into test_date(creteat_time)
values(to_timestamp('2006-01-02 13:40:20.123','yyyy-mm-dd hh24:mi:ss.ff3'));

解决方案 »

  1.   

    timestamp 这种数据类型表现自动生成的二进制数,确保这些数在数据库中是唯一的。timestamp 一般用作给表行加版本戳的机制。存储大小为 8 字节。它不是用来存时间的,时间应该用datetime类型~如果你这里的时间列是想获取当前系统时间的话,你可以在他的默认列里输入,getdate(),然后在插入的时候跳过这一列就行了~
      

  2.   


    这个和数据库默认的日期格式有关,你可以通过 select * from V$NLS_PARAMETERS;查看NLS_DATE_LANGUAGE的值。(而且这个是SESSION级别的)
    比如我当前session的NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE',那么我直接可以用'12-4月-2013'的字符串格式插入到一个DATE类型的column中。
    其实你也可以新开一个窗口建立一个新的SESSION,并且修改这个SESSION的NSL_DATE_LANGUAGE值为AMERICAN:ALTER SESSION SET NLS_DATE_LANGUAGE='AMERICAN';现在你可以在这个窗口中直接插入'12-JAN-2013'格式的字符串到DATE的COLUMN