sql >> Databasteknik >  >> RDS >> Oracle

Beräknar skillnaden mellan två tidsstämplar i Oracle i millisekunder

När du subtraherar två variabler av typen TIMESTAMP , får du en INTERVAL DAY TO SECOND som inkluderar ett antal millisekunder och/eller mikrosekunder beroende på plattform. Om databasen körs på Windows, systimestamp kommer i allmänhet att ha millisekunder. Om databasen körs på Unix, systimestamp kommer i allmänhet att ha mikrosekunder.

  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

Du kan använda EXTRACT funktion för att extrahera de individuella elementen i en 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

Du kan sedan konvertera var och en av dessa komponenter till millisekunder och lägga ihop dem

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

Normalt är det dock mer användbart att ha antingen INTERVAL DAY TO SECOND representation eller att ha separata kolumner för timmar, minuter, sekunder, etc. istället för att beräkna det totala antalet millisekunder mellan två TIMESTAMP värden.



  1. Skaffa databaspatchset

  2. SQL OCH Operator för nybörjare

  3. Oracle sql för att räkna instanser av olika värden i en kolumn

  4. Hur PI() fungerar i MariaDB