您的当前位置:首页正文

Oracle改变会话日期格式

2020-11-09 来源:品趣旅游知识分享网

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入 Oracle改变会话日期格式 问题描述:在存储过程中转换时间的时候想要按着‘yyyy-mm-dd’格式输出,但是输出结果不是这个格式,比如‘2012-12-31’转换输出后是:‘31-12月-12’ 解决:查了半天的资料

欢迎进入Oracle社区论坛,与200万技术人员互动交流 >>进入

  Oracle改变会话日期格式

  问题描述:在存储过程中转换时间的时候想要按着‘yyyy-mm-dd’格式输出,但是输出结果不是这个格式,比如‘2012-12-31’转换输出后是:‘31-12月-12’

  解决:查了半天的资料都不多说,搜索关键字没找对,中间好不容易找到一个相同问题帖子,有层主就只说了句直接设置ALTER SESSION SET NLS_DATE_FORMAT=' || '''YYYY-MM-DD''

  试了下,没效果,我是直接在PL/SQL里设置的。然后运行存储过程没效果,弄了半天,没解决。正要放弃的时候,突然灵感一来,我把这句话加到了存储过程里,O了。可能是我

  笨没明白前面层主说的意思。有个问题,格式里有两个竖线,不知道有什么作用,也没去试。

  execute immediate 'ALTER SESSION SET NLS_DATE_FORMAT=' || '''DD-MON-RRRR''';

  execute immediate 'ALTER SESSION SET NLS_DATE_LANGUAGE=' || '''AMERICAN''';

  (3)linux 下:oracle用户编辑 .bash_profile下 加入以下内容

  export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS '

  重新登录即可生效

  (4)用sysdba登录

  然后更新props$这个表里的字段即可

  update props$ set value = 'YYYY-MM-DD HH24:MI:SS' where parameter = 'NLS_DATE_FORMAT';

显示全文