Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Perbezaan Milisaat Antara Dua Cap Masa Oracle?
Menentukan Perbezaan Milisaat dalam Cap Masa Oracle
Menggunakan cap waktu Oracle selalunya memerlukan pengiraan perbezaan masa yang tepat antara dua nilai. Walaupun perbezaan saat atau minit adalah perkara biasa, pengiraan perbezaan hingga milisaat boleh menjadi penting dalam aplikasi tertentu.
Kaedah
Fungsi EXTRACT
menyediakan penyelesaian. Ia mengekstrak komponen daripada nilai INTERVAL DAY TO SECOND
—hasil penolakan dua cap masa.
Pertanyaan awal ini mengekstrak komponen hari, jam, minit dan kedua:
<code class="language-sql">SELECT EXTRACT(DAY FROM diff) AS days, EXTRACT(HOUR FROM diff) AS hours, EXTRACT(MINUTE FROM diff) AS minutes, EXTRACT(SECOND FROM diff) AS seconds FROM (SELECT SYSTIMESTAMP - TO_TIMESTAMP('2012-07-23', 'YYYY-MM-DD') AS diff FROM DUAL);</code>
Untuk mendapatkan jumlah milisaat, tukar komponen ini dan jumlahnya:
<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) AS total_milliseconds FROM (SELECT SYSTIMESTAMP - TO_TIMESTAMP('2012-07-23', 'YYYY-MM-DD') AS diff FROM DUAL);</code>
Nota Penting: Fungsi ROUND
memastikan saat diwakili dengan tepat dalam milisaat.
Walaupun pengiraan jumlah milisaat adalah mungkin, mengekalkan hasil INTERVAL DAY TO SECOND
atau menggunakan lajur berasingan untuk setiap unit masa selalunya lebih praktikal. Kaedah ini, bagaimanapun, menawarkan pengiraan milisaat yang tepat apabila diperlukan.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Perbezaan Milisaat Antara Dua Cap Masa Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!