欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle改变会话日期格式

程序员文章站 2022-05-03 08:30:00
...

欢迎进入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';

Oracle改变会话日期格式