Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Tính toán chênh lệch giữa hai dấu thời gian trong Oracle bằng mili giây

Khi bạn trừ hai biến loại TIMESTAMP , bạn nhận được INTERVAL DAY TO SECOND bao gồm một số mili giây và / hoặc micro giây tùy thuộc vào nền tảng. Nếu cơ sở dữ liệu đang chạy trên Windows, systimestamp thường sẽ có mili giây. Nếu cơ sở dữ liệu đang chạy trên Unix, systimestamp thường sẽ có micro giây.

  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

Bạn có thể sử dụng EXTRACT hàm để trích xuất các phần tử riêng lẻ của 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

Sau đó, bạn có thể chuyển đổi từng thành phần đó thành mili giây và cộng chúng lại

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

Tuy nhiên, thông thường, sẽ hữu ích hơn nếu có INTERVAL DAY TO SECOND biểu diễn hoặc có các cột riêng biệt cho giờ, phút, giây, v.v. thay vì tính toán tổng số mili giây giữa hai TIMESTAMP giá trị.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách sử dụng ràng buộc kiểm tra trong oracle

  2. Cách chạy tập lệnh SQL Plus trong PowerShell

  3. Làm cách nào để tạo id với AUTO_INCREMENT trên Oracle?

  4. ví dụ về cú pháp nối oracle

  5. Oracle ODP.Net và EF CodeFirst - Lỗi SaveChanges