Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да се справяме с дневната светлина в базата данни на Oracle

Отговорът е:Зависи.

Общо вашата база данни има три часови зони

  1. Часовата зона на вашата сесия:SESSIONTIMEZONE

Това можете да промените чрез ALTER SESSION SET TIME_ZONE=... по всяко време. Това е от значение за резултата от

  • CURRENT_DATE

  • LOCALTIMESTAMP

  • CURRENT_TIMESTAMP


Това е и целевата часова зона, когато правите CAST({TIMESTAMP/DATE without any timezone} AS TIMESTAMP WITH {LOCAL} TIME ZONE)

По подразбиране SESSIONTIMEZONE може да се зададе от променлива на средата ORA_SDTZ или (в Windows) чрез запис в системния регистър HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (за 32-битов клиент), респ. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ (за 64-битов клиент).

  1. Часовата зона на базата данни:DBTIMEZONE

Всъщност това не е толкова важно при ежедневна употреба, важи само за TIMESTAMP WITH LOCAL TIME ZONE колони тип данни и дефинира формата за съхранение.

Това еНЕ часовата зона на SYSDATE или SYSTIMESTAMP !!!

Не можете да промените DBTIMEZONE във вашата база данни, ако базата данни съдържа таблица с TIMESTAMP WITH LOCAL TIME ZONE колона и колоната съдържа данни. В противен случай може да се промени с ALTER DATABASE SET TIME_ZONE='...'; . Промяната не влиза в сила, докато базата данни не бъде изключена и рестартирана.

DBTIMEZONE се задава при създаване на база данни. Ако по време на създаването на база данни не е предоставена часова зона, Oracle по подразбиране задава часовата зона на операционната система на сървъра.

  1. Часовата зона на операционната система на сървъра на база данни:

Тази часова зона е подходяща за резултат от

  • SYSDATE

  • SYSTIMESTAMP


Естествено тази часова зона не може да бъде променена на ниво база данни. В случай, че вашата страна използва лятно часово време, тази часова зона може да се променя два пъти годишно. Можете да го разпитате с SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual; , например.

Така че, ако вашата DB Server OS е настроена правилно, тогава трябва да получите летни часове от следващата седмица (поне за Европа)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да генерирам програмно DDL от базата данни на Oracle?

  2. Използване на имена на услуги на Oracle с SQLAlchemy

  3. Как мога да получа ранен достъп до актуализациите на Oracle Java, така че да мога да тествам моя RIA и да избегна противопожарни тренировки, когато тези актуализации са публични?

  4. Продължаващи вмъквания в Oracle, когато се повдигне изключение

  5. създайте таблица с последователност.nextval в oracle