Oracle
 sql >> база данни >  >> RDS >> Oracle

Изчисляване на разликата между две времеви марки в Oracle в милисекунди

Когато извадите две променливи от тип TIMESTAMP , получавате INTERVAL DAY TO SECOND която включва определен брой милисекунди и/или микросекунди в зависимост от платформата. Ако базата данни работи под Windows, systimestamp обикновено ще има милисекунди. Ако базата данни работи на Unix, systimestamp обикновено има микросекунди.

  1  select systimestamp - to_timestamp( '2012-07-23', 'yyyy-mm-dd' )
  2*   from dual
SQL> /

SYSTIMESTAMP-TO_TIMESTAMP('2012-07-23','YYYY-MM-DD')
---------------------------------------------------------------------------
+000000000 14:51:04.339000000

Можете да използвате EXTRACT функция за извличане на отделните елементи от INTERVAL DAY TO SECOND

SQL> ed
Wrote file afiedt.buf

  1  select extract( day from diff ) days,
  2         extract( hour from diff ) hours,
  3         extract( minute from diff ) minutes,
  4         extract( second from diff ) seconds
  5    from (select systimestamp - to_timestamp( '2012-07-23', 'yyyy-mm-dd' ) diff
  6*           from dual)
SQL> /

      DAYS      HOURS    MINUTES    SECONDS
---------- ---------- ---------- ----------
         0         14         55     37.936

След това можете да конвертирате всеки от тези компоненти в милисекунди и да ги добавите

SQL> ed
Wrote file afiedt.buf

  1  select extract( day from diff )*24*60*60*1000 +
  2         extract( hour from diff )*60*60*1000 +
  3         extract( minute from diff )*60*1000 +
  4         round(extract( second from diff )*1000) total_milliseconds
  5    from (select systimestamp - to_timestamp( '2012-07-23', 'yyyy-mm-dd' ) diff
  6*           from dual)
SQL> /

TOTAL_MILLISECONDS
------------------
          53831842

Обикновено обаче е по-полезно да имате или INTERVAL DAY TO SECOND представяне или да има отделни колони за часове, минути, секунди и т.н., вместо да се изчислява общият брой милисекунди между две TIMESTAMP стойности.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Необходимо ли е да изхвърлите DbCommand след употреба?

  2. Оператор за конкатенация на низове в Oracle, Postgres и SQL Server

  3. Как да изчисля размера на таблиците в Oracle

  4. ORA-4031 грешки с Direct NFS

  5. Как да премахнете нулата, когато цялата част е нула в Oracle