Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Perbezaan Milisaat Antara Cap Masa dalam Oracle?

Bagaimana untuk Mengira Perbezaan Milisaat Antara Cap Masa dalam Oracle?

Susan Sarandon
Lepaskan: 2025-01-11 21:01:49
asal
369 orang telah melayarinya

How to Calculate the Millisecond Difference Between Timestamps in Oracle?

Perbezaan milisaat antara cap masa yang dikira dalam pangkalan data Oracle

Mengira perbezaan milisaat antara dua cap masa dalam pangkalan data Oracle memerlukan pertimbangan yang teliti tentang nuansa khusus platform serta format output yang diperlukan.

Apabila dua pembolehubah TIMESTAMP ditolak, hasilnya ialah nilai INTERVAL DAY TO SECOND. Selang ini mengandungi bilangan milisaat dan/atau mikrosaat yang berbeza, bergantung pada sistem pengendalian yang digunakan oleh pangkalan data. Sebagai contoh, pangkalan data berasaskan Windows biasanya menyediakan milisaat, manakala pangkalan data berasaskan Unix cenderung menggunakan mikrosaat.

Ekstrak komponen masa

Untuk mendapatkan semula komponen masa tertentu daripada nilai INTERVAL DAY TO SECOND, anda boleh menggunakan fungsi EXTRACT. Fungsi ini membenarkan pengekstrakan elemen individu seperti hari, jam, minit dan saat.

Kira jumlah milisaat

Jika anda memerlukan jumlah bilangan milisaat antara cap masa, anda boleh menukar setiap komponen yang diekstrak kepada milisaat dan jumlah. Walau bagaimanapun, selalunya lebih praktikal untuk mengekalkan perwakilan INTERVAL DAY TO SECOND atau membuat lajur berbeza untuk jam, minit dan saat.

Contoh pengiraan:

Pertimbangkan contoh berikut:

<code class="language-sql">select systimestamp - to_timestamp('2012-07-23', 'yyyy-mm-dd')
from dual;</code>
Salin selepas log masuk

Pertanyaan ini mendapatkan semula perbezaan masa sebagai nilai INTERVAL DAY TO SECOND:

<code>+000000000 14:51:04.339000000</code>
Salin selepas log masuk

Menggunakan fungsi EXTRACT kita boleh mengekstrak komponen hari, jam, minit dan kedua:

<code class="language-sql">select extract(day from diff) days,
       extract(hour from diff) hours,
       extract(minute from diff) minutes,
       extract(second from diff) seconds
from (select systimestamp - to_timestamp('2012-07-23', 'yyyy-mm-dd') diff
            from dual);</code>
Salin selepas log masuk

Hasilnya ialah:

<code>      DAYS      HOURS    MINUTES    SECONDS
---------- ---------- ---------- ----------
         0         14         55     37.936</code>
Salin selepas log masuk

Untuk mengira jumlah milisaat kami menggabungkan komponen ini:

<code class="language-sql">select extract(day from diff)*24*60*60*1000 +
       extract(hour from diff)*60*60*1000 +
       extract(minute from diff)*60*1000 +
       round(extract(second from diff)*1000) total_milliseconds
from (select systimestamp - to_timestamp('2012-07-23', 'yyyy-mm-dd') diff
            from dual);</code>
Salin selepas log masuk

Kembalikan hasil:

<code>TOTAL_MILLISECONDS
------------------
          53831842</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Milisaat Antara Cap Masa dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan