程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 淺談利用浮點數操作Oracle數據庫日期

淺談利用浮點數操作Oracle數據庫日期

編輯:Oracle數據庫基礎

眾所周知,Oracle的時間可以直接用來加減操作,比如

select sysdate, sysdate - 2 from dual

"SYSDATE"    "SYSDATE-2"

-----------------------------------
"19-5月 -09"    "17-5月 -09"

很明顯,sysdate - 2表示的日期-2,也就是2天前的時間,2天後的時間+2就可以了。

但是,有的時候我們不需要2天前或者2天後這麼長的時間,我們需要2小時前,或者2分鐘前的時間。

但是並沒有發現Oracle有關於小時或者分鐘直接操作的函數,本人也非常納悶。

後來查找資料和朋友們的幫助,才知道日期用於加減操作的時候是一個浮點數,於是做了2個實驗。

實驗1:

select to_char(sysdate, 'yyyy-MM-dd hh24:mi:ss') cur_time, 
to_char(sysdate - 2 / 24, 'yyyy-MM-dd hh24:mi:ss') time_before_2_hour
from dual;

"CUR_TIME"                       "TIME_BEFORE_2_HOUR"

-------------------------------------------------------------------
"2009-05-19 09:21:58"    "2009-05-19 07:21:58"

實驗2:

select to_char(sysdate, 'yyyy-MM-dd hh24:mi:ss') cur_time, 
to_char(sysdate - 2 / (24 * 60), 'yyyy-MM-dd hh24:mi:ss') time_before_2_minutes
from dual;

"CUR_TIME"                      "TIME_BEFORE_2_MINUTES"

---------------------------------------------------------------------
"2009-05-19 09:24:18"    "2009-05-19 09:22:18"

結果顯示比較明顯了,2小時前就是2/24天,2分鐘就是2/(24*60)天,Oracle日期的加減還是day上的加減,不過他是一個浮點數,所以轉換成日期之後實際上就是時間上的加減。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved