nls_date_format参数用于设置日期显示格式,设置的方式有多种,不同的方式也会带来不同的结果。参数的设置是有优先级的,日期格式的参数设置也不例外。优先级如下(低到高):初始化参数 < 系统环境变量 < 会话级(session)< 函数
下面来演示参数设置的优先级
1.用初始化参数来设置nls_date_format
检查是否设置了nls_date_format环境变量,从下面的结果可知并没有设置

[oracle@oracle11g ~]$ export nls_date_format
SQL>show parameter nls_date_format NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_date_format string

修改参数nls_date_format

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

System altered.

SQL> shutdow immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started. Total System Global Area 327155712 bytes
Fixed Size 1273516 bytes
Variable Size 138412372 bytes
Database Buffers 184549376 bytes
Redo Buffers 2920448 bytes
Database mounted.
Database opened.
SQL> show parameter nls_date_format NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_date_format string yyyy-mm-dd hh24:mi:ss SQL> select sysdate from dual; SYSDATE
------------
04-FEB-15

在修改参数nls_date_format后,我们查询系统时间并没有以’yyyy-mm-dd hh24:mi:ss’这种格式显式,因为NLS_LANG环境变量同样会影响到nls_date_format参数,只要存在NLS_LANG环境变量,Oracle就会使用环境变量的值(即使nls_date_format),根据上面我们提到的优先级,所以初始化参数文件设置的值会被忽略,但由于环境变量中nls_date_format并没有设置,所以Oracle还是使用了默认的格式。

现在设置NLS_LANG环境变量

[oracle@oracle11g ~]$ export NLS_LANG
[oracle@oracle11g ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Wed Feb 4 10:00:05 2015 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> show parameter nls_date_format NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_date_format string yyyy-mm-dd hh24:mi:ss
SQL> select sysdate from dual; SYSDATE
-------------------
2015-02-04 10:01:26

从上面的结果可以看到当我们去掉环境变量nls_lang后,查询系统时间就是以初始化参数nls_date_format的格式(yyyy-mm-dd hh24:mi:ss)来显示的

2.我们将参数nls_date_format设置为’yyyy-mm-dd hh24:mi:ss’,将环境变量设置为’yy-mm-dd hh24:mi:ss’来观察它们的优先级

[oracle@oracle11g ~]$ export nls_date_format='yy-mm-dd hh24:mi:ss'
[oracle@oracle11g ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Wed Feb 4 09:44:07 2015 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> show parameter nls_date_format NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_date_format string yyyy-mm-dd hh24:mi:ss
SQL> select sysdate from dual; SYSDATE
-----------------
15-02-04 09:44:31

可以看到查询系统时间以是环境变量所设置的格式(’yy-mm-dd hh24:mi:ss’)来显示的。这就说明nls_date_format在环境变量中的设置比初始化参数的优先级高。

3.我们将参数nls_date_format设置为’yyyy-mm-dd hh24:mi:ss’,环境变量设置为’yy-mm-dd hh24:mi:ss’,并在会话级将nls_date_format设置为’dd-mm-yy hh24:mi:ss’

[oracle@oracle11g ~]$ export nls_date_format='yy-mm-dd hh24:mi:ss'
[oracle@oracle11g ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Wed Feb 4 09:44:07 2015 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. SQL> alter session set nls_date_format='dd-mm-yy hh24:mi:ss'; Session altered. SQL> show parameter nls_date_format NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_date_format string yyyy-mm-dd hh24:mi:ss
SQL> select sysdate from dual; SYSDATE
-----------------
04-02-15 09:50:01

从上面的结果可以看到查询系统时间是以会话级参数nls_date_format的格式(=’dd-mm-yy hh24:mi:ss’)来显示的,这就说明了nls_date_format参数的优先级为:会话级>环境变量>初始化参数

4.我们将参数nls_date_format设置为’yyyy-mm-dd hh24:mi:ss’,环境变量设置为’yy-mm-dd hh24:mi:ss’,并在会话级将nls_date_format设置为’dd-mm-yy hh24:mi:ss’,使用函数来转换日期格式为’mm-dd-yy hh24:mi:ss’

[oracle@oracle11g ~]$ export nls_date_format='yy-mm-dd hh24:mi:ss'
[oracle@oracle11g ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.5.0 - Production on Wed Feb 4 09:44:07 2015 Copyright (c) 1982, 2010, Oracle. All Rights Reserved. SQL> alter session set nls_date_format='dd-mm-yy hh24:mi:ss'; Session altered. SQL> show parameter nls_date_format NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
nls_date_format string yyyy-mm-dd hh24:mi:ss SQL> select to_char(sysdate,'mm-dd-yy hh24:mi:ss') from dual; TO_CHAR(SYSDATE,'
-----------------
02-04-15 10:11:44

从上面的结果可以看到函数的优先级最高,这就证明了日期格式的优先级为:初始化参数 < 系统环境变量 < 会话级(session)< 函数

时间格式nls_date_format的设置的更多相关文章

  1. Java json设置时间格式,Jackson设置时间格式,json设置单引号

    Java json设置时间格式,Jackson设置时间格式,json设置单引号 >>>>>>>>>>>>>>> ...

  2. iOSDate时间格式(转)

    在开发iOS程序时,有时候需要将时间格式调整成自己希望的格式,这个时候我们可以用NSDateFormatter类来处理.例如: //实例化一个NSDateFormatter对象 NSDateForma ...

  3. IOS 时间格式 时间转换 大总结

    //实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init]; //设定时间格式,这里 ...

  4. WordPress 博客文章时间格式the_time()设置

    国外设计的WordPress 主题里的文章的时间格式是类似“十一月 21, 2010”这种格式的,而中国人习惯的是年在前,月紧跟其后,日在末尾,所以看国外的就显得很别扭,但是我们可以通过修改WP时间代 ...

  5. win7 下设置时间格式为yyyy-MM-dd 格式无效的解决方法

    部分win7 64位机器,在时间区域部分设置了时间格式为:yyyy-MM-dd后程序和数据库里面还是原来默认的yyyy/MM/dd格式 打开注册表,搜索 yyyy/MM/dd ,修改为yyyy-MM- ...

  6. Wireshark的时间格式设置

    默认是自捕获开始经历的秒数,如下图: 要调整的设置步骤: step1.打开wireshark step2.选择view->Time Display Fommat step3.选择你所需要的时间格 ...

  7. C#winform设置DateTimePicker的时间格式

    在对DateTimePicker进行时间格式设置时候,要先对属性Format设置为"Custom"自定义格式,然后再CustomFormat里面进行格式设置 比如"yyy ...

  8. Delphi获取与设置系统时间格式,即GetLocaleInfo和SetLocaleInfo

    在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字 ...

  9. Jackson将对象转换为json字符串时,设置默认的时间格式

    maven需要的依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifac ...

随机推荐

  1. linux下阅读源代码的工具

    说来真是惭愧呀.一直在用VIM 做开发.却不知道VI 里还有这么好使的工具.以前一直都是用: find -type f -print | xargs grep -i **** 在源代码里查找. 原来L ...

  2. Using Nini .NET Configuration Library

    Using Nini .NET Configuration Library Tweet When developing a desktop application, there will be tim ...

  3. HDOJ -- 4632 区间DP

    Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65535 K (Java/ ...

  4. Monkey Test

    以前写的,可以在报错后抓Log. ::运行此脚本前,请确认手机是否已连接至PC且已开启Debug模式 @echo off REM 循环十次 set /a Num=0 :loop set /a Num+ ...

  5. Lesson: Introduction to JAXP

    The Java API for XML Processing (JAXP) is for processing XML data using applications written in the ...

  6. springsecurity4+springboot 实现remember-me 发现springsecurity 的BUG

    前言:现在开发中,记住我这个功能是普遍的,用户不可能每次登录都要输入用户名密码.昨天准备用spring security的记住我功能,各种坑啊,吐血 . 先看下具体实现吧. spring securi ...

  7. 设计模式24---设计模式之职责链模式(Chain of Responsibility)(行为型)

    1.职责链模式讲解 1.1职责链定义 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止. 1.2职责链模式 ...

  8. BABOK - 企业分析(Enterprise Analysis)

    BABOK - 企业分析(Enterprise Analysis)概要 发表于2013年10月9日由周金根 描述 企业分析描述我们如何捕捉.提炼并明晰业务需要,并定义一个可能实现这些业务需要的一个方案 ...

  9. lucene索引并搜索mysql数据库[转]

    由于对lucene比较感兴趣,本人在网上找了点资料,终于成功地用lucene对mysql数据库进行索引创建并成功搜索,先总结如下: 首先介绍一个jdbc工具类,用于得到Connection对象: im ...

  10. List<T>实体去重分组:

    实体去重分组: //实体类 public class Province { public string id { get; set; } public string name { get; set; ...