在資料庫裡查詢資料的時候,我們經常會遇到一些和日期時間格式的問題,比如顯示語言,顯示格式等。可能資料在資料庫裡面存放的格式是:
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
平台$exportnls_date_format=」yyyy-mm-dd hh24:mi:ss」
$exportnls_date_language=」american」
$exportnls_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
型別的字段就可以跟日期控制項生成的時間字串直接比較了,非常方便的,如果對查詢速度要求高,可以給日期型別的字段建立乙個基於函式的索引。
修改sqlplus中顯示時間日期的格式
在資料庫裡查詢資料的時候,我們經常會遇到一些和日期時間格式的問題,比如顯示語言,顯示格式等。可能資料在資料庫裡面存放的格式是 yyyy mm dd hh24 mi ss,但我們查詢出來的卻是 22 1月 10,第一反應可能是字符集出了問題。其實還有乙個原因就是系統環境變數沒有設定,下面我們就來看下有...
修改sqlplus中顯示時間日期的格式
修改sqlplus中顯示時間日期的格式 收藏 在資料庫裡查詢資料的時候,我們經常會遇到一些和日期時間格式的問題,比如顯示語言,顯示格式等。可能資料在資料庫裡面存放的格式是 yyyy mm dd hh24 mi ss,但我們查詢出來的卻是 22 1月 10,第一反應可能是字符集出了問題。其實還有乙個原...
修改sqlplus中顯示時間日期的格式
在資料庫裡查詢資料的時候,我們經常會遇到一些和日期時間格式的問題,比如顯示語言,顯示格式等。可能資料在資料庫裡面存放的格式是 yyyy mm dd hh24 mi ss,但我們查詢出來的卻是 22 1 月 10,第一反應可能是字符集出了問題。其實還有乙個原因就是系統環境變數沒有設定,下面我們就來看下...