Rumah >pangkalan data >Oracle >Bagaimana untuk menukar cap waktu Oracle kepada format datetime yang berbeza
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.
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
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.
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!