我要的数据库是Oracle 10g ex版,原来预设的时间格式是NLS_DATE_FORMAT DD-MON-RR,之后我修改了注册表,添加了 NLS_DATE_FORMAT 为'yyyy-mm-dd hh24:mi:ss',可是现在问题出现了,我用sql* plus命令行使用select sysdate from dual
结果是我想要的:2010-06-16 11:11:11 ,可是在图形界面sql(manager)中我用select sysdate from dual得到的还是
16-6月 -10,没有变化,与命令行的不一致,这样导致我在命令行方式下可以以为'yyyy-mm-dd hh24:mi:ss'格式insert into,但到了图形界面又得用DD-MON-RR方式输入,否则提示字符格式不正确。该怎么帮呀?

解决方案 »

  1.   

    select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual
      

  2.   

    試試:
    alter session set NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss';
    select * from NLS_SESSION_PARAMETERS
     where parameter='NLS_DATE_FORMAT'
      

  3.   

    你用的是什么图形界面sql(manager?
    也许它有一个设置呢。
    如果没有,在获取结果之前,执行一下:
    alter session set NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
      

  4.   

    我现在是想在Oracle图形环境中(数据库主页)中输入'yyyy-mm-dd hh24:mi:ss'这种格式的。
    select * from NLS_SESSION_PARAMETERS
     where parameter='NLS_DATE_FORMAT'
    在sql * plus命令行中与是'yyyy-mm-dd hh24:mi:ss'
    但是在图形界面中sql 语句是DD-MON-RR,郁闷啊。
    导致现在我要输入入'yyyy-mm-dd hh24:mi:ss'格式只能用命令行insert into,而不能直接在图形环境中(数据库主页)中输入。
      

  5.   

    alter session set NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss';
    只是暂时的,我想要永久的。而且这语句也只在sql * plus命令行中有效,为什么图形界面中的sql 会与 sql * plus命令行的设置不同呢。
      

  6.   

    alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;
    完后要重重新启动数据库实例服务 就是重启数据库
      

  7.   

    alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' ;
      

  8.   

    感谢各位,可是alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;
    在重启后仍然在图形化界面中 是DD-MON-RR ,只是sql* plus命令行种 日期格式已是'yyyy-mm-dd hh24:mi:ss' ,同一个表的数据在Oracle命令行与图形界面 日期格式不同。照理说应该是同一个呀。
      

  9.   

    而且在图形界面的SQL 命令菜单中输入alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' ;会提示  ORA-02096: 此选项的指定初始化参数不可修改。
      

  10.   

    我也碰到了和LZ一样的问题我也用的是10G XE版,用户界面是使用数据库机8080端口发布的页面。在图形界面当中执行查询的时候,返回的时间格式始终是 '01-1月-2010' 这样的方式但是在命令行界面当中敲命令查询的话,已经改成'2010-01-01'这样了……有点困扰……但还不影响开发……