時間格式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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Ubuntu、CentOS修改時區、設定24小時時間格式教程。UbuntuCentOS
- JS設定時間格式為2010-01-01,以及時間加減JS
- 程式碼段——Newtonsoft簡單設定序列化的時間格式
- win10 時間怎麼設定24小時格式_win10如何設定24小時制Win10
- 【時間戳轉普通時間格式的方法】時間戳
- win10系統長日期格式顯示怎麼設定 win10系統設定長時間格式顯示的步驟Win10
- iphone時間格式的支援iPhone
- [時間格式的轉換]
- win10如何修改時間日期格式 調整時間格式和日期格式的方法Win10
- Linux時間設定系統時間、硬體時間和時間服務Linux
- WinAppDriver 等待時間設定技巧APP
- localStorage設定過期時間
- linux系統時間設定Linux
- js時間顯示設定JS
- localStorage設定儲存時間
- redis設定過期時間Redis
- Linux設定系統時間Linux
- MyBatis自動設定建立時間和更新時間MyBatis
- 時間戳轉化為時間格式時間戳
- jackson時間格式的處理
- 日期和時間格式
- win10要如何設定更新時間_win10怎麼設定更新時間Win10
- Ubuntu 時間不準,怎麼設定NTP時間同步?Ubuntu
- Linux設定和修改時間與時區Linux
- JavaScript 設定cookie 過期時間JavaScriptCookie
- 積木報表設定時間
- pbootcms模板如何呼叫時間 時間格式大全boot
- word標題格式怎麼設定 word標題格式設定的方法
- layui laydate日期時間範圍,時間預設設定為23:59:59UI
- [20240814]oracle 21c NLS_DATE_FORMAT設定問題(整理版本1).txtOracleORM
- oracle的interval時間格式的總結Oracle
- MySQL 時間戳的 獲取 & 轉換為特定時間格式MySql時間戳
- 電腦螢幕時間長短在哪裡設定 電腦螢幕息屏時間設定
- Python格式化時間Python
- 格式化時間 戳
- java時間格式轉化Java
- as3 時間格式工具S3
- 日期時間格式化
- 轉換UTC時間格式