zoukankan      html  css  js  c++  java
  • 时间格式nls_date_format的设置

    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)< 函数

  • 相关阅读:
    ISSCC 2017论文导读 Session 14:ENVISION: A 0.26-to-10 TOPS/W Subword-Parallel DVAFS CNN Processor in 28nm
    ISSCC 2017论文导读 Session 14: A 28nm SoC with a 1.2GHz Prediction Sparse Deep-Neural-Network Engine
    ISSCC 2017论文导读 Session 14 Deep Learning Processors,DNPU: An 8.1TOPS/W Reconfigurable CNN-RNN
    ISSCC 2017论文导读 Session 14 Deep Learning Processors,A 2.9TOPS/W Deep Convolutional Neural Network
    深度学习方法(九):自然语言处理中的Attention Model注意力模型
    深度学习方法(八):自然语言处理中的Encoder-Decoder模型,基本Sequence to Sequence模型
    720P、1080P、4K是什么意思?
    《微微一笑很倾城》中肖奈大神说的平方根倒数速算法是什么鬼?三十分钟理解!
    转载为什么写技术博客对新人如此重要
    三十分钟理解博弈论“纳什均衡” -- Nash Equilibrium
  • 原文地址:https://www.cnblogs.com/travel6868/p/5019246.html
Copyright © 2011-2022 走看看