Terkadang kita perlu menentukan zona waktu saat menggunakan fungsi datetime di Oracle.
Tapi ada banyak zona waktu di luar sana. Bagaimana kita mengingat mereka semua? Dan bagaimana kami tahu sistem kami mendukung zona waktu tertentu?
Untungnya, kami dapat menanyakan V$TIMEZONE_NAMES
view untuk mengembalikan daftar zona waktu yang valid.
Dapatkan Semua Info Zona Waktu
Kode berikut mengembalikan semua baris dan kolom dari tampilan:
SELECT * FROM V$TIMEZONE_NAMES;
Ada banyak baris dalam tampilan ini, tetapi inilah tampilan 10 baris pertama:
TZNAME TZABBREV CON_ID _____________________ ___________ _________ Africa/Abidjan LMT 0 Africa/Abidjan GMT 0 Africa/Accra LMT 0 Africa/Accra GMT 0 Africa/Accra +0020 0 Africa/Addis_Ababa LMT 0 Africa/Addis_Ababa EAT 0 Africa/Addis_Ababa +0230 0 Africa/Addis_Ababa +0245 0 Africa/Algiers LMT 0 ...
Kita dapat melihat bahwa setiap nama wilayah zona waktu memiliki lebih dari satu singkatan yang sesuai. Ini melayani hal-hal seperti musim panas, dll.
Berikut adalah tabel yang menjelaskan arti beberapa singkatan:
Singkatan Zona Waktu | Artinya |
---|---|
LMT | Waktu Rata-Rata Lokal |
PMT | Waktu Rata-Rata Paris |
BASAH | Waktu Eropa Barat |
BARAT | Waktu Musim Panas Eropa Barat |
CET | Waktu Eropa Tengah |
CEST | Waktu Musim Panas Eropa Tengah |
EET | Waktu Eropa Timur |
EEST | Waktu Musim Panas Eropa Timur |
Dapatkan Nama Wilayah saja
Kita dapat menggunakan DISTINCT
atau UNIQUE
klausa untuk mengembalikan hanya nama wilayah zona waktu tanpa duplikat.
SELECT DISTINCT TZNAME
FROM V$TIMEZONE_NAMES
ORDER BY TZNAME ASC;
Inilah tampilan 10 baris pertama sekarang:
TZNAME _____________________ Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Asmera Africa/Bamako Africa/Bangui Africa/Banjul Africa/Bissau ...
Dapatkan Semua Singkatan untuk Nama Zona Waktu yang Diberikan
Berikut adalah contoh kueri yang mengembalikan semua singkatan untuk nama zona waktu tertentu:
SELECT
TZNAME,
TZABBREV
FROM V$TIMEZONE_NAMES
WHERE TZNAME LIKE '%Sydney%'
ORDER BY TZNAME ASC;
Hasil:
TZNAME TZABBREV ___________________ ___________ Australia/Sydney LMT Australia/Sydney AEDT Australia/Sydney AEST
Tentang File Zona Waktu
Di Oracle Database, nama zona waktu terdapat dalam file zona waktu.
Anda dapat menanyakan V$TIMEZONE_FILE
tampilan untuk melihat file zona waktu mana yang sedang digunakan oleh database.
Contoh:
SELECT * FROM V$TIMEZONE_FILE;
Hasil:
FILENAME VERSION CON_ID __________________ __________ _________ timezlrg_32.dat 32 0
Sistem saya menggunakan versi 32, yang merupakan file zona waktu default untuk Oracle 19c (yang saya gunakan). File ini terletak di lokasi berikut:$ORACLE_HOME/oracore/zoneinfo/timezlrg_32.dat
Lihat dokumentasi Oracle untuk Memilih File Zona Waktu untuk informasi lebih lanjut tentang file zona waktu.