時間格式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)< 函式
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-1426649/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle的NLS_DATE_FORMAT設定(日期格式設定)OracleORM
- 設定時間格式
- 設定oralce時間戳格式時間戳
- 設定RMAN顯示的日期時間格式
- [Tools] PL/SQL Developer設定時間格式SQLDeveloper
- exp 匯出時帶時間格式的檔案設定
- Ubuntu、CentOS修改時區、設定24小時時間格式教程。UbuntuCentOS
- (轉)修改oracle預設日期格式 nls_date_formatOracleORM
- session超時時間的設定Session
- win10 時間怎麼設定24小時格式_win10如何設定24小時制Win10
- JS設定時間格式為2010-01-01,以及時間加減JS
- 【Linux-時間設定】-設定時區並調整時間Linux
- quartz定時任務時間設定quartz
- 程式碼段——Newtonsoft簡單設定序列化的時間格式
- Oracle CSS的引數設定 心跳時間設定OracleCSS
- 為jQuery的$.ajax設定超時時間jQuery
- ECS設定時區與時間
- weblogic設定超時時間Web
- [時間格式的轉換]
- iphone時間格式的支援iPhone
- [20170918]NLS_DATE_FORMAT設定.txtORM
- win10如何修改時間日期格式 調整時間格式和日期格式的方法Win10
- win10系統長日期格式顯示怎麼設定 win10系統設定長時間格式顯示的步驟Win10
- linux下的系統時間、硬體時間設定Linux
- HttpClient設定聯網超時時間HTTPclient
- C# UdpClient 設定超時時間C#UDPclient
- js時間顯示設定JS
- localStorage設定儲存時間
- redis設定過期時間Redis
- localStorage設定過期時間
- 設定history 帶時間點
- MyBatis自動設定建立時間和更新時間MyBatis
- 時間戳轉化為時間格式時間戳
- 如何深度定製 Ubuntu 皮膚的時間日期顯示格式Ubuntu
- Linux時間設定系統時間、硬體時間和時間服務Linux
- javascript時間戳和時間格式的相互轉換JavaScript時間戳
- 臨時表空間的建立、刪除,設定預設臨時表空間
- Ubuntu 時間不準,怎麼設定NTP時間同步?Ubuntu