Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara Mengembalikan Daftar Zona Waktu yang Valid di Oracle Database

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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan hanya tanggal tanpa waktu di Oracle

  2. Bisakah terjadi deadlock dengan metode akses yang sama?

  3. APPL_TOP bertahap di Oracle Applications R12

  4. Metode Pengumpulan:Prosedur Pangkas Dalam Database Oracle

  5. Tidak dapat memvalidasi, dengan opsi novalidate