oracle資料庫
與日期有關的有三種型別:date,timestamp與interval。date和timestamp型別儲存精度可變的固定日期/時間,二者區別是,後者秒可以精確到小數,另外還可以有時區之分。。interval型別可以很容易地儲存乙個時間量,如「8個小時」或「30天」。將兩個日期相減,就會得到乙個時間間隔(interval);例如,將8小時間隔加到乙個timestamp上,會得到8小時以後的乙個新的timestamp。
操作日期有關欄位的時候,最好顯示地指定日期或時間格式,比如:
insert into t ( date_column ) values ( to_date( '01/02/2003', 'dd/mm/yyyy' ) );避免各種格式造成混亂。
1. date型別介紹
date型別是乙個7位元組的定寬日期/時間資料型別。它總是包含7個屬性,包括:世紀、世紀中哪一年、月份、月中的哪一天、小時、分鐘和秒。這七個位元組分別儲存的是這7個屬性,比如:2005-12-05 12:30:43儲存的是120,105,12,5,12,31,44。世紀和年份分別加了100,分鐘和秒鐘分別加了1。世紀和年份加100是為了區分西元前和公元後。我們經常使用這樣的條件,where to_char(date_column,'yyyy') = '2005',其實這個地方可以換成:where trunc(date_column,'y') = to_date('01-jan-2005','dd-mon-yyyy')。因為,trunc函式是在日期上將年份後面5個位元組清空,而to_char函式,還要轉換成字串。當然,如果能夠不使用函式最好,比如:created >= to_date('01-jan-2005','dd-mon-yyyy') and created < to_date('01-jan-2006','dd-mon-yyyy');這樣如果在created列上建立了索引,還能使用索引。
如何向date增減時間
1. 使用numtodsinterval內建函式來增加小時、分鐘和秒。比如:date+numtodsinterval(n,'minute')
2. 加乙個簡單的數來增加天。比如:date+n
3. 使用add_months內建函式來增加月和年。比如:add_months(date,n)
因為,add_months函式專門處理月末日期。它實際上會為我們完成日期的「捨入」;例如,如果向乙個有31天的月增加1個月,而且下乙個月不到31天,add_months就會返回下乙個月的最後一天。比如:向2023年2月29日增加1個月,得到的是2023年3月31日。2月29日是該月的最後一天,所以add_months返回了下乙個月的最後一天。
2. timestamp型別介紹
timestamp型別與date非常類似,只不過另外還支援小數秒和時區。
語法如下: timestamp(n),n可選,用於指定timestamp中秒分量的小數字數,可以取值為0~9.如果指定0,timestamp在功能上則與date等價。
ORACLE資料庫日期型別
sysdate 返回作業系統中的當前日期和時間。current date 會話的時區中的系統日期 systimestamp 報告timestamp資料型別格式的系統日期 add months sysdate,6 新增月份 add months sysdate,6 減少月份 months betwee...
oracle資料庫 日期函式用法
oracle資料庫 日期函式用法 oracle trunc 函式的用法 日期 1.select trunc sysdate from dual 2013 01 06 今天的日期為2013 01 06 2.select trunc sysdate,mm from dual 2013 01 01 返回當...
Oracle資料庫插入日期型資料
oracle資料庫插入日期型資料 往oracle資料庫中插入日期型資料 to date的用法 insert into floor values to date 2007 12 20 18 31 34 yyyy mm dd hh24 mi ss 查詢顯示 2007 12 2018 31 34.0 in...