Rumah >pangkalan data >Oracle >Bagaimana untuk menukar cap waktu Oracle kepada format datetime yang berbeza

Bagaimana untuk menukar cap waktu Oracle kepada format datetime yang berbeza

PHPz
PHPzasal
2023-04-18 09:06:0512088semak imbas

Pangkalan data Oracle menggunakan cap masa (cap masa) sebagai jenis tarikh dan masa Apabila menangani isu tarikh dan masa, selalunya perlu menukar cap masa kepada format tarikh dan masa yang boleh dibaca manusia. Dalam artikel ini, kita akan membincangkan cara cap waktu Oracle ditukar kepada format tarikh-masa yang berbeza.

  1. Tukar cap waktu kepada rentetan datetime

Kita boleh menggunakan fungsi terbina dalam Oracle to_char() untuk menukar cap masa kepada rentetan datetime. Parameter pertama fungsi to_char() ialah cap waktu yang perlu ditukar, dan parameter kedua ialah perwakilan rentetan bagi format tarikh dan masa sasaran.

Contohnya, untuk menukar cap masa kepada rentetan masa tarikh dalam format 'YYYY-MM-DD HH24:MI:SS', anda boleh menggunakan kod berikut:

SELECT to_char(TIMESTAMP '2021-08-31 12:00:00', 'YYYY-MM-DD HH24:MI:SS') AS datetime_string
FROM dual;

Hasilnya sepatutnya Ia kelihatan seperti ini:

DATETIME_STRING
-------------------
2021-08-31 12:00:00
  1. Tukar cap waktu kepada masa Unix

Masa Unix bermaksud bermula dari 1 Januari 1970 00:00:00 UTC Nombor beberapa saat sehingga masa yang ditetapkan. Dalam Oracle, kita boleh menukar cap masa kepada masa Unix menggunakan kod berikut:

SELECT (TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') - TIMESTAMP '2021-08-31 12:00:00') * 24 * 60 * 60 AS unix_time
FROM dual;

Terangkan kod ini. Pertama, kami menggunakan fungsi TO_TIMESTAMP() untuk menukar rentetan '1970-01-01 00:00:00' kepada jenis cap masa. Kemudian, kami menolak cap masa yang ditentukan daripada cap masa ini (di sini, '2021-08-31 12:00:00') untuk mendapatkan perbezaan masa (tempoh). Akhir sekali, darabkan perbezaan masa ini dengan 24 * 60 * 60, iaitu bilangan saat dalam sehari, untuk mendapatkan masa Unix yang sepadan.

Keluaran kod di atas mestilah integer yang mewakili bilangan saat antara 1 Januari 1970 00:00:00 UTC dan masa yang ditentukan.

  1. Tukar masa Unix kepada cap masa

Jika kita ingin menukar masa Unix kepada cap masa, kita boleh menggunakan kod berikut:

SELECT TO_TIMESTAMP('1970-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') + NUMTODSINTERVAL(1630425600, 'SECOND') AS timestamp
FROM dual;

Dalam kod di atas, kami menggunakan fungsi TO_TIMESTAMP() untuk menukar rentetan '1970-01-01 00:00:00' kepada jenis cap masa. Kami kemudian menggunakan fungsi NUMTODSINTERVAL() untuk menukar masa Unix (di sini 1630425600) kepada jenis selang. Akhir sekali, tambah cap masa dan selang masa untuk mendapatkan cap masa yang sepadan dengan masa Unix.

Hasil keluaran mestilah nilai jenis cap waktu, mewakili tarikh dan masa yang sepadan dengan masa Unix.

Ringkasan

Artikel ini memperkenalkan kaedah penukaran cap masa Oracle, yang boleh menukar cap masa kepada format tarikh dan masa yang berbeza. Melalui kaedah ini, kita boleh menangani isu tarikh dan masa dengan lebih mudah.

Atas ialah kandungan terperinci Bagaimana untuk menukar cap waktu Oracle kepada format datetime yang berbeza. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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