Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak radzić sobie z oszczędzaniem światła dziennego w bazie danych Oracle

Odpowiedź brzmi:to zależy.

W sumie Twoja baza danych ma trzy strefy czasowe

  1. Strefa czasowa Twojej sesji:SESSIONTIMEZONE

Możesz to zmienić przez ALTER SESSION SET TIME_ZONE=... kiedykolwiek. Ma to znaczenie dla wyniku

  • CURRENT_DATE

  • LOCALTIMESTAMP

  • CURRENT_TIMESTAMP


Jest to również docelowa strefa czasowa, gdy wykonujesz CAST({TIMESTAMP/DATE without any timezone} AS TIMESTAMP WITH {LOCAL} TIME ZONE)

Domyślna SESSIONTIMEZONE można ustawić za pomocą zmiennej środowiskowej ORA_SDTZ lub (w systemie Windows) wpisem rejestru HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (dla klienta 32-bitowego), ewent. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (dla klienta 64-bitowego).

  1. Strefa czasowa bazy danych:DBTIMEZONE

W rzeczywistości nie jest to tak ważne w codziennym użytkowaniu, dotyczy tylko TIMESTAMP WITH LOCAL TIME ZONE kolumny typu danych i określa format przechowywania.

To jest NIE strefa czasowa SYSDATE lub SYSTIMESTAMP !!!

Nie możesz zmienić DBTIMEZONE w Twojej bazie danych, jeśli baza danych zawiera tabelę z TIMESTAMP WITH LOCAL TIME ZONE kolumna, a kolumna zawiera dane. W przeciwnym razie można to zmienić za pomocą ALTER DATABASE SET TIME_ZONE='...'; . Zmiana nie zacznie obowiązywać, dopóki baza danych nie zostanie zamknięta i ponownie uruchomiona.

DBTIMEZONE jest ustawiana podczas tworzenia bazy danych. Jeśli podczas tworzenia bazy danych nie podano strefy czasowej, Oracle domyślnie wybiera strefę czasową systemu operacyjnego serwera.

  1. Strefa czasowa systemu operacyjnego serwera bazy danych:

Ta strefa czasowa ma znaczenie dla wyniku

  • SYSDATE

  • SYSTIMESTAMP


Oczywiście tej strefy czasowej nie można zmienić na poziomie bazy danych. Jeśli w Twoim kraju używany jest czas letni, ta strefa czasowa może zmieniać się dwa razy w roku. Możesz go przesłuchać za pomocą SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual; na przykład.

Tak więc, jeśli twój system operacyjny serwera DB jest poprawnie skonfigurowany, powinieneś uzyskać czasy letnie od przyszłego tygodnia (przynajmniej w Europie)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Operator Oracle (+)

  2. Jak przeprowadzić instalację instancji EBS 12.2 Vision

  3. Dobra praktyka otwierania/zamykania połączeń w aplikacji asp.net?

  4. Jak pobrać dane z kursora w Oracle za pomocą pętli for?

  5. Zamieszanie w strefie czasowej Oracle 10g