'2012年10月09日13:47'类型的日期怎么插入oracle数据库中???

解决方案 »

  1.   

    日期列直接使用varchar2类型。
      

  2.   

    你为什么要直接用这个用法?
    你直接用日期格式然后查询的时候把日期强制转换一下不就可以了吗?
    Convert(varchar(16),datetime,'yyyy年MM月dd日HH:mm')
    这样就可以强制转换了。。
      

  3.   

    数据库用Date类型,实体类也Date类型,不就可以插入啦,需要特定的格式在查询出来的时候把Data转换下就很灵活了!
      

  4.   

    把一个文件里的数据导入到oracle数据库中,文件里存的是这个类型,想问问不做处理能不能直接插入到数据库中?
      

  5.   

    你直接insert 一条试试 不就清楚了么,结果会告诉你 不行
      

  6.   

    你如果建表的时候把日期列直接存成varchar2类型,就可以直接插入,
    如果是date类型列,要用to_date('2012年10月09日13:47','yyyy mm dd hh24:mi')函数转换下。
      

  7.   

    select to_date('2012年10月09日13:47','yyyy mm dd hh24:mi') from dual;是不行 的
      

  8.   

    先把中文去掉再调用to_date()转成date型
    select to_date(regexp_replace('2012年10月09日13:47','[^0-9:]',''),'yyyymmddhh24:mi') from dual
      

  9.   

    如果你所有要插入的数据都是这个格式,可以设置NLS_DATEFORMAT变量,把默认格式都设成'yyyy年mm月dd日hh24:mi',否则就要提前对文件进行转换,或者用其它程序处理了
      

  10.   

    如果所有之处全是同样格式,而且不用运算、比较什么的,最简单就是用char/varchar/varchar2类型了
    否则,转换是一定需要的
      

  11.   

    刚才忘记加下划线了,变量名应该是NLS_DATE_FORMAT
    顺便说一句,没有设置NLS_DATE_FORMAT变量的话,你只有按照oracle默认的日期格式(DD-MON-YY)才能将文本中的字段导入到date字段里。
    通常我们习惯设置NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'