select to_char(sysdate, 'yyyy-mm-dd hh-mi-ss') from dual;insert into t(c_date) values(to_date('2-DEC-2001', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE = American'))最后一个好像不行,可以插入类型为varchar2的字段

解决方案 »

  1.   

    前面的问题,tsuleon兄是对的。
    后一个问题这样写to_date('2003年8月18日','yyyy"年"mm"月"dd"日"')
    把年月日分别用双引号括起来就行了
      

  2.   

    1、ALTER SESSION SET NLS_DATE_FORMAT="YYYYMMDD HH:MI:SS";
       SELECT SYSDATE FROM DUAL;2、insert into t(c_date) values(to_date('2-DEC-2001', 'DDMMYYYY');
      

  3.   

    shuipipi(水皮皮) :
    SQL>insert into zxz.company_events
        values('输入书上的时间格式',to_date('07-DEC-2001', 'DDMMYYYY'))
                                        *
    ERROR 位于第 2 行:
    ORA-01858: 在要求输入数字处找到非数字字符
    有错误呀,为什么呢?请帮忙再看一下!
      

  4.   

    insert into zxz.company_events (列1,列2)
    values(......);
    指定一下具体的列名吧,从提示看,表的第二列是数字型的,不是日期型的
      

  5.   

    我又试了一下,还是不行,可能是英文字母不能接受吧?
    我换成to_date('11032002', 'DDMMYYYY')就OK了。不知道为什么?
    哪位高手能解答这个问题吗?
      

  6.   

    to_date('07-DEC-2001', 'DDMMYYYY')
    这样肯是不行的,两个格式不匹配。 TsuLeon() 写的加nls参数的是对的。因为nls参数的不同,格式中的MON对应的有可能是中文的5月、6月等,而不是英文的月