Oracle的NLS_DATE_FORMAT设置(日期格式设置)

本文介绍了在Oracle中设置日期格式为'YYYY-MM-DD HH24:MI:SS'的四种方法,包括会话级别设置、修改glogin.sql、数据库参数修改以及Linux和Windows环境变量设置,并强调了NLS_DATE_FORMAT需与NLS_LANG配合使用的要点。

Oracle的NLS_DATE_FORMAT设置(日期格式设置)




 

真题1、 Oracle 中,如何让日期显示为“年 - - 日 时 : : 秒”的格式?


答案:
Oracle 的日期默认显示为以下格式:

SYS@PROD1> select sysdate from dual;

 

SYSDATE

---------

22-DEC-17

阅读不方便,此时可以通过设置 NLS_DATE_FORMAT 来让日期显示更人性化,可以有如下几种方式:

①  在会话级别运行命令:“ ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; ”,只在会话级别起作用。

②  在文件 $ORACLE_HOME/sqlplus/admin/glogin.sql 中加入:“ ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; ”,这样每个会话都会起作用。

③  修改初始化参数:“ ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; ”,每个会话都起作用。

④  设置环境变量 NLS_DATE_FORMAT ,但是必须和 NLS_LANG 一起设置,否则不会生效,可以直接在会话窗口使用 export .bash_profile 配置文件(全局应用)设置,如下所示:

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

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK   # 或: export NLS_LANG=AMERICAN

若是 Windows 环境,则可以使用如下命令:

SETX "NLS_DATE_FORMAT"  "YYYY-MM-DD HH24:MI:SS"

SETX "NLS_LANG"  "AMERICAN_AMERICA.ZHS16GBK"

使用以上任意一种方法设置,效果如下:

SYS@PROD1>  ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';

 

Session altered.

 

SYS@PROD1> select sysdate from dual;

 

SYSDATE

-------------------

2017-12-22 06:51:18

 







 

1:在会话级别设置nls_date_format对应的日期格式。

 

使用alter session set nls_date_format='xxxx'设置只会影响当前会话的。这个对所有工具(SQL*Plus、SQL Developer)都能生效。

 

 

SQL> select sysdate from dual;
 

SYSDATE
---------
14-SEP-17
 

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
 

Session altered.
 

SQL> select sysdate from dual;
 

SYSDATE
-------------------
2017-09-14 08:33:17
 

SQL>

 

 

2:如果只是SQL*Plus,可以在SQL*Plus的环境变量设置文件login.sql或glogin.sql中来设置。

 

SQL*Plus启动的时候首先会先运行glogin.sql脚本,然后查找当前目录下是否存在login.sql文件,如果找到则运行该脚本,如果当前目录不存在login.sql.则查找是否设置了SQLPATH环境变量,找到了就会去执行该环境变量路径下的login.sql脚本,否则则会停止继续查找。 glogin.sql文件位于$ORACLE_HOME/sqlplus/admin下.可以在glogin.sql文件下增加一条语句alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

 

 

clip_image001

 

 

3: 修改数据库的参数,需要重启数据库后生效   

 

 

 

SQL> show parameter nls_date_format;
 

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
nls_date_format                      string
SQL> alter system set nls_date_format='yyyy-mm-dd hh24:mi:ss' scope=spfile;
 

System altered.
 

SQL>

 

这个是全局的,有时候影响非常大,所以必须格外小心,要确保不影响各个系统和应用的前提下修改!

 

 

 

 

4 :修改 Linux 环境变量,在环境变量中设置日期格式。

 

 

注意:环境变量NLS_DATE_FORMAT必须和NLS_LANG一起设置,否则不会生效(这个才是总结这篇文章的初衷,以前一直没有注意这个问题)。可以直接在会话窗口使用export或 .bash_profile 配置文件(全局应用)设置。

 

下面我们来测试一下看看,如下所示:

 

[oracle@DB-Server ~]$ sqlplus / as sysdba
 

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 13 09:40:48 2017
 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 

 

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 

SQL> select sysdate from dual;
 

SYSDATE
---------
13-SEP-17
 

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@DB-Server ~]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';
[oracle@DB-Server ~]$ sqlplus / as sysdba
 

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 13 09:41:22 2017
 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 

 

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 

SQL> select sysdate from dual;
 

SYSDATE
---------
13-SEP-17
 

SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@DB-Server ~]$ export NLS_LANG=AMERICAN
[oracle@DB-Server ~]$ sqlplus / as sysdba
 

SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 13 09:41:50 2017
 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.
 

 

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 

SQL> select sysdate from dual;
 

SYSDATE
-------------------
2017-09-13 09:41:58
 

SQL>



今天想做个rman基于时间点的恢复实验,需要设置下nls_data_format参数,在linux下用export nls_date_format='yyyy-mm-dd hh24:mi:ss'命令就可以设置,但是在windows环境下如果带单引号设置,登录rman会报错,后经google发现在windows环境下设置这个变量不需要加引号,直接set nls_date_format=yyyy-mm-dd hh24:mi:ss即可。

run {
sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
sql 'alter session set NLS_LANGUAGE="AMERICAN"';
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
allocate channel c5 type disk;
allocate channel c6 type disk;
allocate channel c7 type disk;
allocate channel c8 type disk;
allocate channel c9 type disk;
allocate channel c10 type disk;
allocate channel c11 type disk;
allocate channel c12 type disk;
backup as compressed backupset FILESPERSET 1 database format 'd:\dbback\FULL_%d_%U.full' section size 100G;
sql 'alter system archive log current';
backup as compressed backupset archivelog all  format 'd:\dbback\ARC_%d_%U.arc' section size 100G;
backup current controlfile format 'd:\dbback\cf_%d_%U.ctl';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
release channel c5;
release channel c6;
release channel c7;
release channel c8;
release channel c9;
release channel c10;
release channel c11;
release channel c12;
}




About Me

.............................................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在itpub( http://blog.itpub.net/26736162/abstract/1/ )、博客园( http://www.cnblogs.com/lhrbest )和个人微信公众号( xiaomaimiaolhr )上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162/abstract/1/

● 本文博客园地址: http://www.cnblogs.com/lhrbest

● 本文pdf版、个人简介及小麦苗云盘地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群号: 230161599 (满) 、618766405

● 微信群:可加我 微信,我拉大家进群,非诚勿扰

● 联系我请加QQ好友 646634621 ,注明添加缘由

● 于 2017-12-01 09:00 ~ 2017-12-31 22:00 在魔都完成

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

.............................................................................................................................................

小麦苗的微店 https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麦苗出版的数据库类丛书 http://blog.itpub.net/26736162/viewspace-2142121/

.............................................................................................................................................

使用 微信客户端 扫描下面的二维码来关注小麦苗的微信公众号( xiaomaimiaolhr )及QQ群(DBA宝典), 学习最实用的数据库技术。

   小麦苗的微信公众号      小麦苗的DBA宝典QQ群2     《DBA笔试面宝典》读者群       小麦苗的微店

.............................................................................................................................................

1565434412688145.png
DBA笔试面试讲解群
《DBA宝典》读者群 欢迎与我联系



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2149081/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26736162/viewspace-2149081/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值