2009年12月8日 星期二

Oracle處理DATE及TIMESTAMP需注意的地方

oracle官方說法上的確證明了~
基本上Date 型態精準度只能到second,不含fractional seconds 或time zone,
而timestamp可支援frational seconds 0~9位,default是到小數點六位。請再往下看(可跳過例子)

舉例: Table: test( ttime DATE,ttimestamp TIMESTAMP)

利用"TO_DATE()"函數
一定要使用"to_timestamp()" 函數才能將含有毫秒或到奈秒的資料塞進timestamp型態的欄位中。


就目前實驗的結果就顯示
TO_TIMESTAMP才可支援到秒數小數點後9位。TO_DATE是不行的!

下面是oracle文件內建型態說明: 請看date及timestamp說明




若想知道oracle對日期的描述字元有哪些格式,請參考:
http://download.oracle.com/docs/cd/B13789_01/server.101/b10758.pdf
[7-3頁 Datetime Format Models]

由於oracle的session及database層級的參數設定,會以session層級為優先。
所以如果有權限的情況下想了解目前database及client端的format設定時,
可利用query下方指令。
Database層:
select * from nls_database_parameter;
 
Session層:
select * from nls_session_parameter;
 
若想修改session層的設定:
alter session set nls_data_format=yyyy-mm-dd;
 







沒有留言:

張貼留言