程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 在Oracle9i中計算時間差

在Oracle9i中計算時間差

編輯:Oracle數據庫基礎

算時間差是Oracle DATA數據類型的一個常見問題。Oracle支持日期計算,你可以創建諸如“日期1-日期2”這樣的表達式來計算這兩個日期之間的時間差。

一旦你發現了時間差異,你可以使用簡單的技巧來以天、小時、分鐘或者秒為單位來計算時間差。為了得到數據差,你必須選擇合適的時間度量單位,這樣就可以進行數據格式隱藏。

使用完善復雜的轉換函數來轉換日期是一個誘惑,但是你會發現這不是最好的解決方法。

round(to_number(end-date-start_date))- 消逝的時間(以天為單位)

round(to_number(end-date-start_date)*24)- 消逝的時間(以小時為單位)

round(to_number(end-date-start_date)*1440)- 消逝的時間(以分鐘為單位)

顯示時間差的默認模式是什麼?為了找到這個問題的答案,讓我們進行一個簡單的SQL *Plus查詢。

SQL> select sysdate-(sysdate-3) from dual;

算時間差是Oracle DATA數據類型的一個常見問題。Oracle支持日期計算,你可以創建諸如“日期1-日期2”這樣的表達式來計算這兩個日期之間的時間差。

一旦你發現了時間差異,你可以使用簡單的技巧來以天、小時、分鐘或者秒為單位來計算時間差。為了得到數據差,你必須選擇合適的時間度量單位,這樣就可以進行數據格式隱藏。

使用完善復雜的轉換函數來轉換日期是一個誘惑,但是你會發現這不是最好的解決方法。

round(to_number(end-date-start_date))- 消逝的時間(以天為單位)

round(to_number(end-date-start_date)*24)- 消逝的時間(以小時為單位)

round(to_number(end-date-start_date)*1440)- 消逝的時間(以分鐘為單位)

顯示時間差的默認模式是什麼?為了找到這個問題的答案,讓我們進行一個簡單的SQL *Plus查詢。

SQL> select sysdate-(sysdate-3) from dual;

SYSDATE-(SYSDATE-3)
-------------------
3

這裡,我們看到了Oracle使用天來作為消逝時間的單位,所以我們可以很容易的使用轉換函數來把它轉換成小時或者分鐘。然而,當分鐘數不是一個整數時,我們就會遇到放置小數點的問題。

Select
(sysdate-(sysdate-3.111))*1440
from
dual;


(SYSDATE-(SYSDATE-3.111))*1440
------------------------------
4479.83333

SYSDATE-(SYSDATE-3)
-------------------
3

這裡,我們看到了Oracle使用天來作為消逝時間的單位,所以我們可以很容易的使用轉換函數來把它轉換成小時或者分鐘。然而,當分鐘數不是一個整數時,我們就會遇到放置小數點的問題。

Select
(sysdate-(sysdate-3.111))*1440
from
dual;


(SYSDATE-(SYSDATE-3.111))*1440
------------------------------
4479.83333

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