修改sqlplus中顯示時間日期的格式
在資料庫裡查詢資料的時候,我們經常會遇到一些和日期時間格式的問題,比如顯示語言,顯示格式等。可能資料在資料庫裡面存放的格式是:YYYY-MM-DD HH24:MI:SS, 但我們查詢出來的卻是 22-1月-10, 第一反應可能是字符集出了問題。 其實還有一個原因就是系統環境變數沒有設定,下面我們就來看下有關這個的配置問題。
1. 在session 中修改
1. 1 中英文的切換
SQL> alter session set NLS_DATE_LANGUAGE='SIMPLIFIED CHINESE';
會話已更改。
SQL> select sysdate from dual;
SYSDATE
--------------
22-1月 -10
SQL> alter session set NLS_DATE_LANGUAGE='AMERICAN';
會話已更改。
SQL> select sysdate from dual;
SYSDATE
------------
22-JAN-10
SQL>
1.2 時間格式的切換
SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
會話已更改。
SQL> select sysdate from dual;
SYSDATE
-------------------
2010-01-22 14:30:21
SQL>
2. 在作業系統中設定相關環境變數
2.1 windows 平臺
C:> SET NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS
C:> SET NLS_DATE_LANGUAGE=AMERICAN
C:>SEET NLS_DATE_LANGUAGE=SIMPLIFIED CHINESE;
注意:這裡YYYY-MM-DD HH24:MI:SS不能加引號,但在unix系統中要加
SQL> select sysdate from dual;
SYSDATE
-------------------
2010-01-22 14:33:21
這樣改了以後只對當前的控制檯窗品有效,如果不想每次都設定,就修改系統/使用者環境變數,新增一個變數,比如nls_date_format,值為YYYY-MM-DD HH24:MI:SS。 就可以了。
2.2 Linux 平臺
$export NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”
$export NLS_DATE_LANGUAGE=”AMERICAN”
$export NLS_DATE_LANGUAGE=”SIMPLIFIED CHINESE”
注:在unix系統中要加引號
Export 只對當前session 有效,如果要長期儲存,就需要修改.bash_profile 引數,比如Oracle使用者的,/home/oracle/.bash_profile, 在該檔案中加入相關引數以後就可以了。
NLS_DATE_FORMAT=”YYYY-MM-DD HH24:MI:SS”;
export NLS_DATE_FORMAT;
NLS_DATE_LANGUAGE=”AMERICAN”;
export NLS_DATE_LANGUAGE;
NLS_DATE_LANGUAGE=”SIMPLIFIED CHINESE”;
export NLS_DATE_LANGUAGE;
補充:
修改時間日期的格式並不單是顯示上的問題,而是在內部儲存的值也會被覆蓋:
SQL> select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual;
select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual
*
ERROR at line 1:
ORA-01861: literal does not match format string
在沒有修改環境變數或session引數時,這個語句是無法執行的。修改後可以執行:
SQL> select to_date(to_char(sysdate,'yyyy-mm-dd')) from dual;
TO_DATE(TO
----------
2010-1-22
注:把引數NLS_DATE_FORMAT設定成yyyy-mm-dd,查詢的過濾條件中date型別的欄位就可以跟日期控制元件生成的時間字串直接比較了,非常方便的,如果對查詢速度要求高,可以給日期型別的欄位建立一個基於函式的索引。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9390331/viewspace-714176/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自定義 RMAN 顯示的日期時間格式
- 設定RMAN顯示的日期時間格式
- 修改資料庫的日期顯示格式資料庫
- win10如何修改時間日期格式 調整時間格式和日期格式的方法Win10
- 如何深度定製 Ubuntu 皮膚的時間日期顯示格式Ubuntu
- Linux命令之date - 顯示、修改系統日期時間Linux
- QT顯示當前日期時間QT
- Layui表格日期格式顯示UI
- 關於oracle日期格式顯示格式Oracle
- asp.net 時間顯示格式ASP.NET
- django 設定日期顯示格式Django
- 修改Windows工作列的時間顯示(轉)Windows
- win10 在桌面上顯示日期時間的方法_win10怎麼把時間日期顯示在桌面Win10
- Android Setting下修改時間與日期格式的問題???Android
- win10系統長日期格式顯示怎麼設定 win10系統設定長時間格式顯示的步驟Win10
- linux大檔案 &定時查詢 &sqlplus格式 &修改時間LinuxSQL
- Aix 修改日期時間AI
- Linux 日期時間修改Linux
- 為什麼ls-l時,有些檔案顯示日期,有些顯示時間?(轉)
- win10時間不顯示日期怎麼辦_win10電腦只顯示時間沒有日期如何處理Win10
- Qt中利用定時器QTimer實時顯示當前日期和時間QT定時器
- JavaScript時間日期格式化JavaScript
- JavaScript 時間日期格式轉換JavaScript
- PHP日期格式轉時間戳PHP時間戳
- JavaScript 日期和時間的格式化JavaScript
- Qt中利用定時器QTimer準實時顯示當前日期和時間QT定時器
- TOAD和PLSQL 預設日期顯示、rowid顯示、TNSNAME的修改SQL
- 修改oracleasm的listdisks和querydisk命令顯示格式OracleASM
- Asp.net日期字串格式化顯示ASP.NET字串格式化
- C#日期時間格式化C#
- C#日期格式化,時間C#
- Win10系統工作列只顯示時間不顯示日期如何解決Win10
- SAP Fiori應用裡日期格式的顯示奧祕
- 短視訊平臺原始碼,平臺顯示時間,時間格式的轉換原始碼
- sqlplus中調節顯示SQL
- Qt:通過QLabel控制元件來顯示實時日期時間QT控制元件
- windows環境下sqlplus中date資料顯示格式_to_dateWindowsSQL
- 如何修改系統時間格式