你这个TIME在ORACLE里改成字符串是最简单不过了。

解决方案 »

  1.   

    insert into test 
    values ('123',
            to_date('2002-10-23','YYYY-MM-DD'),
            to_date('23:59:00','HH24:MI:SS'));或者用一个字段表示:
    insert into test 
    values ('123',
            to_date('2002-10-23 23:59:00','YYYY-MM-DD HH24:MI:SS'));
      

  2.   

    oracle与Informix处理日期是有点不一样的,注意一下就可以了。
    你既然从Informix转到oracle,就得先熟悉oracle的函数,否则,很多问题你都不知道怎么办。
    oracle插入或修改时,只接受日期类型
    可以用to_date转换,to_date('2002-10-04 09:07:30','yyyy-mm-dd hh24:mi:ss')
    如果日期型转化成别的显示类型,可以用to_char来自定义显示类型
    to_char(sysdate,'yyyy-mm-dd')
    to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
    to_char函数的转换格式特别多,查查帮助吧
      

  3.   

    你们说的函数我都知道,否则我也不会去改nls_date_format了。但是,问题是原来的程序中这样的地方很多,我不想一个一个地去改程序。我想有没有属性可以设置一下,就可以搞定了?或者可不可以自定义一个数据类型来做这样的事?
      

  4.   

    主要的问题是你的informix不知为何如何设计,informix本身支持datetime,如果你确实要将它们分开,在oracle下也只好做两个字段了,但个人认为时间段用字符串是不是好一些,但涉及到许多程序只能一一修改了。这是个大问题。
      

  5.   

    如果oracle是日期类型的,只会接受日期类型的数据。
    除非你把日期字段改成varchar2类型。
    你自己看看,哪个损失大???
      

  6.   

    oracle与Informix处理日期是有点不一样的,注意一下就可以了。
    你既然从Informix转到oracle,就得先熟悉oracle的函数,否则,很多问题你都不知道怎么办。
    oracle插入或修改时,只接受日期类型
    可以用to_date转换,to_date('2002-10-04 09:07:30','yyyy-mm-dd hh24:mi:ss')
    如果日期型转化成别的显示类型,可以用to_char来自定义显示类型
    to_char(sysdate,'yyyy-mm-dd')
    to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
    to_char函数的转换格式特别多,查查帮助吧