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

Bagaimana menangani Day Light Saving di database Oracle

Jawabannya adalah:Tergantung.

Secara total, basis data Anda memiliki tiga zona waktu

  1. Zona waktu sesi Anda:SESSIONTIMEZONE

Ini dapat Anda ubah dengan ALTER SESSION SET TIME_ZONE=... kapan saja. Ini relevan untuk hasil

  • CURRENT_DATE

  • LOCALTIMESTAMP

  • CURRENT_TIMESTAMP


Ini juga merupakan zona waktu target saat Anda melakukan CAST({TIMESTAMP/DATE without any timezone} AS TIMESTAMP WITH {LOCAL} TIME ZONE)

SESSIONTIMEZONE . default dapat diatur oleh variabel lingkungan ORA_SDTZ atau (di Windows) dengan entri registri HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (untuk Klien 32 bit), resp. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (untuk Klien 64 bit).

  1. Zona waktu basis data:DBTIMEZONE

Sebenarnya ini tidak begitu penting dalam penggunaan sehari-hari, ini hanya relevan untuk TIMESTAMP WITH LOCAL TIME ZONE kolom tipe data dan mendefinisikan format penyimpanan.

Ini TIDAK zona waktu SYSDATE atau SYSTIMESTAMP !!!

Anda tidak dapat mengubah DBTIMEZONE pada database Anda jika database berisi tabel dengan TIMESTAMP WITH LOCAL TIME ZONE kolom dan kolom berisi data. Jika tidak, dapat diubah dengan ALTER DATABASE SET TIME_ZONE='...'; . Perubahan tidak berlaku sampai database dimatikan dan dimulai ulang.

DBTIMEZONE diatur ketika database dibuat. Jika tidak ada zona waktu yang disediakan saat pembuatan database, maka Oracle default ke zona waktu sistem operasi server.

  1. Zona waktu sistem operasi server database:

Zona waktu ini relevan untuk hasil

  • SYSDATE

  • SYSTIMESTAMP


Secara alami zona waktu ini tidak dapat diubah pada tingkat basis data. Jika negara asal Anda menggunakan Waktu Musim Panas, zona waktu ini dapat berubah dua kali setahun. Anda dapat menginterogasinya dengan SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual; , misalnya.

Jadi, jika OS Server DB Anda diatur dengan benar, maka Anda akan mendapatkan waktu musim panas mulai minggu depan (setidaknya untuk Eropa)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Putar di Oracle 10g

  2. Fitur file kontrol snapshot dengan RMAN dan ORA-00245

  3. Dimana Patch saya?

  4. Fungsi SINH() di Oracle

  5. ORA-01219:basis data tidak terbuka:kueri diizinkan hanya pada tabel/tampilan tetap