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

Zamieszanie w strefie czasowej Oracle 10g

W rzeczywistości są tu 3 strefy czasowe, a nie 2

  • strefa czasowa sesji/klienta
    • Wyświetlane w SESSIONTIMEZONE
    • To jest strefa czasowa CURRENT_DATE, LOCALTIMESTAMP i CURRENT_TIMESTAMP. Różnica między tymi 3 jest typem zwracanym, zwracają odpowiednio DATE, TIMESTAMP i TIMESTAMP WITH TIME STREFA)
  • Strefa czasowa bazy danych
    • Pokazane w DBTIMEZONE
    • To jest strefa czasowa używana do wewnętrznego przechowywania wartości TIMESTAMP Z LOKALNĄ STREFĄ CZASOWĄ. Zwróć uwagę, że wartości są konwertowane do/z strefy czasowej sesji podczas wstawiania/wybierania, więc w rzeczywistości nie jest to tak ważne, jak się wydaje
    • To NIE jest strefa czasowa SYSDATE/SYSTIMESTAMP
  • Strefa czasowa systemu operacyjnego bazy danych
    • W systemie Unix bazuje na zmiennej TZ podczas uruchamiania Oracle
    • To jest strefa czasowa SYSDATE i SYSTIMESTAMP

W pierwszym przykładzie widzę, że sesja TZ to UTC-6, baza danych TZ to UTC, a strefa czasowa systemu operacyjnego bazy danych to UTC-6.

W twoim drugim przykładzie widzę, że sesja TZ to UTC-6, baza danych TZ to UTC+2, a strefa czasowa systemu operacyjnego bazy danych to UTC+1.



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

  2. Przykład Oracle UTL_HTTP Post Multipart/Form-Data (JSON i ZIP)

  3. PLSQL JDBC:Jak uzyskać identyfikator ostatniego wiersza?

  4. Odpowiednie narzędzia sprawiają, że strojenie działa szybko

  5. ORA-24408:nie można wygenerować unikalnej nazwy grupy serwerów