INSERT INTO YY_PROJECTS VALUES('111',SYSDATE,TO_DATE('20070505','YYYYMMDD'),'1');
插入语句执行完了之后在'表数据编辑器中'显示的确是"5-5月 -2007 11:52:34 AM"
SQL> SELECT TO_CHAR(project_start_date,'YYMMDD'),
            TO_CHAR(project_end_date,'YYMMDD') 
     FROM YY_PROJECTS;
查询出的结果是'070824 070505'我想问为什么在表数据编辑器中不能显示070505呢
我需要存放的是这种形式 
哪位大哥帮忙解决下吧

解决方案 »

  1.   

    date = '20070505'+ 默认的当前时间如果想存"070505"这样的数据格式,那就把该字段数据类型改成varchar2(6)好了
      

  2.   

    楼上的大哥啊我明白您说的意思
    但是客户给的表结构必须要求是DATE类型
    现在查询出来的类型也可以控制
    就是在表数据编辑器中看到的不是我想要的
    我想问下如果这个字段的类型是DATE那么插入到表里显示的肯定是'5-5月 -2007 11:52:34 AM'吗
    如果真的不能存放070505我就可以和客户商量了 呵呵
      

  3.   

    那我现在插入INSERT INTO YY_PROJECTS VALUES('111',SYSDATE,TO_DATE('20070505','YYYYMMDD'),'1');
    这种形式他显示的也不是20070505
    啊啊啊啊啊啊郁闷啊~~!
      

  4.   

    到底是什么原因啊
    查询出来的什么格式都可以
    插入进去的就只能是这样了吗??
    难道是DATE类型在ORACLE中只能这样??
      

  5.   

    DATE类型,你想插入和以固定格式查看就要进行转换..
    不知道你为什么那么在意没有转换过的那种形式?
    SQL> select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS DAY') FROM DUAL;TO_CHAR(SYSDATE,'YYYY-MM-D
    --------------------------
    2007-08-24 15:33:10 星期五
    日期类型里面包含很多信息,你想用那部分就取那部分,很好用的.
    你要想省事还是用VARCHAR类型吧.
      

  6.   

    不知道下面的方法行不行:
    先alter session set nls_date_format = 'yyyymmdd';
    再select查询下看看.
      

  7.   

    首先 表数据编辑器不是官方的东西 它显示的格式不是一定正确如果你想看到底数据库怎么存的 可以用下sql*plus工具显示出来的不一定的数据库存储的
      

  8.   

    LZ,你只是想要在数据表编辑器里看到你想要的格式的话,我建议你改一下显示模式就可以了。
    在PL/SQL中执行select to_char(sysdate,'yymmdd') from dual; 
    结果:
    TO_CHAR(SYSDATE,'YYMMDD')
    070827
    而在ORACLE的数据编辑器里你可以有一个还小笔的地方,那去把里面显示时间的SQL语句的内容改一下,
    "用户名"."表名"."时间" 改成 to_char("用户名"."表名"."时间",'yymmdd'),然后点应用就可以了。