Oracle的NLS_DATE_FORMAT设置(日期格式设置)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle的NLS_DATE_FORMAT设置(日期格式设置),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6238字,纯文字阅读大概需要9分钟。
内容图文
![Oracle的NLS_DATE_FORMAT设置(日期格式设置)](/upload/InfoBanner/zyjiaocheng/860/6ca159edbd6f4e5291ba8115d15a320a.jpg)
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';
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; }
内容总结
以上是互联网集市为您收集整理的Oracle的NLS_DATE_FORMAT设置(日期格式设置)全部内容,希望文章能够帮你解决Oracle的NLS_DATE_FORMAT设置(日期格式设置)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。