oracle表中date类型字段的显示是由什么参数确定的呢,如果想要字段的显示由‘2010-12-3 下午 08:27:12’ 显示成‘2010-12-3 pm 08:27:12’ 能否在不格式化输出的时候,通过修改参数实现呢

解决方案 »

  1.   

    ALTER SESSION SET NLS_LANGUAGE=american;
    ALTER SESSION SET NLS_TERRITORY=america;
      

  2.   

    如果想改服务器的。。
    ALTER system SET NLS_LANGUAGE=american;
    ALTER system SET NLS_TERRITORY=america;
      

  3.   


    我原来也是认为修改这里就应该能显示成英文,但是我将当前的session修改成了NLS_LANGUAGE=american,NLS_TERRITORY=america,注册表nls_lang也修改成了american_america.utf8(与服务器一样),可是查询的时候还是显示“下午”呢?
      

  4.   

    那就和你的客户端有关了,你使用什么东西连接的呢?
    你去cmd下使用sqlplus查询看看呢?
      

  5.   


    哦 确实,sqlplus中显示的就能修改过来了。
    我原来是在pl/sql developer中看的,
    pl/sql在一个session中查询nls_session_parameters时,nls_language是AMERICAN,在软件中查看support into中的nls_lang时,也是american_america.utf8,但是查询表中数据就是显示“下午”汉字,知道怎么在pl/sql让他显示英文吗?
      

  6.   

    直接在pl/sql dev中连接以后,
    执行: 
    alter session set NLS_DATE_FORMAT='yyyy-mm-dd am hh:mi:ss';
    这样就始终显示英文了
      

  7.   

    哈哈 还是集体的力量大呀,和同事们研究出来了。plsql在preferences 中有个nls options 选项,可以选择是使用windows format 还是oracle format 还是 user defined 看样子这个优先级是最高的,即使修改了session,也会以这个配置为主优先显示。