oracle函式可以實現諸多的功能,下面就介紹使用oracle函式計算時間差的實現方法。
兩個date型別字段:start_date,end_date,計算這兩個日期的時間差(分別以天,小時,分鐘,秒,毫秒):
天: round(to_number(end_date - start_date))
小時: round(to_number(end_date - start_date) * 24)
分鐘: round(to_number(end_date - start_date) * 24 * 60)
秒: round(to_number(end_date - start_date) * 24 * 60 * 60)
毫秒: round(to_number(end_date - start_date) * 24 * 60 * 60 * 1000)
例子: select round(to_number(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') - to_date('2012-05-11 10:37:40','yyyy-mm-dd hh24:mi:ss'))*24*60*60) from dual .
select round(to_number(to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
- to_date('2013-01-16 00:00:00','yyyy-mm-dd hh24:mi:ss'))*24*60*60) from dual
to_date如何取得毫秒?
由於oracle中date型別只支援到秒,不支援到毫秒,所以to_date()不能取到毫秒。 如果要取到毫秒,oracle 9i以上版本,可以使用timestamp型別,是date的擴充套件型別,能支援到毫秒,毫秒的顯示精度是6位,不過有效位是3位,即最大值達到999,滿1000ms就進為1s。而與to_date()對應的轉換函式可以使用to_timestamp()。 select to_timestamp('2011-12-15 10:40:10.345', 'yyyy-mm-dd hh24:mi:ss.ff') as mydate from dual; 如果想將timestamp又轉換成date型別,可以使用cast()函式,但得到的date型別沒有了毫秒值。如下: select cast(to_timestamp('2011-12-15 10:40:10.345', 'yyyy-mm-dd hh24:mi:ss.ff') as date) as mydate from dual;
計算兩個日期的時間間隔
計算兩個日期的時間間隔 第乙個日期和時間 第二個日期和時間 private string datediff datetime datetime1,datetime datetime2 說明 1.datetime 值型別代表了乙個從公元 0001年1 月1日0 點0分0 秒到公元 9999年12 月3...
Oracle 計算兩個時間的差值
oracle 計算兩個時間的差值 有兩個日期資料start date,end date,欲得到這兩個日期的時間差 以天,小時,分鐘,秒,毫秒 天 round to number end date start date 小時 round to number end date start date 24...
Oracle 計算兩個時間的差值
有兩個日期資料start date,end date,欲得到這兩個日期的時間差 以天,小時,分鐘,秒,毫秒 天 round to number end date start date 小時 round to number end date start date 24 分鐘 round to numb...