oracle計算時間差的問題

2021-07-10 04:46:58 字數 628 閱讀 2139

之前有個需求是oracle儲存過程中計算兩個時間的時間差,本來以為資料庫中直接相減就可以了,但是經過測試,發現了一點問題。就是總是比預想的值要大1,比如說2月22日,減去2月21日,值竟然是2。然後2月21日減去2月21日,值是1。進一步在pl/sql中測試:

發現了問題所在,原來是值的精度問題。會把當天的時分秒也算是,所以21日執行這個語句,得到的結果是0.6度。然後四捨五入就是1。

發現問題就要解決問題。第一種方法就是把oracle的函式sysdate獲取的日期時間經過格式化得到日期值,把時間去除。我是這麼寫的:

先轉化成varchar型別,再轉化成date型別。兩個日期相減,就是得到了想要的值。

另外一種方法也可以解決這個問題:就是採用trunc函式,去除小數點後面的值,而且不進行四捨五入。

這樣,得到的值就可以滿足需求了。

Oracle計算時間差

oracle中計算時間差是經常用到的。可以使用 日期1 日期2 並加以運算,來獲得你要想的時間差 天 小時 分鐘或者秒。例如 select to date 2012 02 20 17 45 04 yyyy mm dd hh24 mi ss to date 2012 02 19 08 34 04 yy...

oracle 時間差計算

預設情況下,2個日期相減,得到是乙個數字,需要進一步轉化,以方便識別 select sysdate,sysdate to date 2007 04 03 13 45 39 yyyy mm dd hh24 mi ss from dual 輸出結果 2007 4 4 am 10 45 56 0.8751...

Oracle計算時間差

oracle中計算時間差是經常用到的。可以使用 日期1 日期2 並加以運算,來獲得你要想的時間差 天 小時 分鐘或者秒。例如 select to date 2012 02 20 17 45 04 yyyy mm dd hh24 mi ss to date 2012 02 19 08 34 04 yy...