La risposta è:Dipende.
In totale il tuo database ne ha tre fusi orari
- Fuso orario della tua sessione:
SESSIONTIMEZONE
Puoi cambiarlo con ALTER SESSION SET TIME_ZONE=...
in ogni momento. È rilevante per il risultato di
-
CURRENT_DATE
-
LOCALTIMESTAMP
-
CURRENT_TIMESTAMP
È anche il fuso orario target quando esegui CAST({TIMESTAMP/DATE without any timezone} AS TIMESTAMP WITH {LOCAL} TIME ZONE)
SESSIONTIMEZONE
predefinito può essere impostato dalla variabile di ambiente ORA_SDTZ
o (su Windows) per voce di registro HKLM\SOFTWARE\Wow6432Node\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ
(per client a 32 bit), risp. HKLM\SOFTWARE\ORACLE\KEY_%ORACLE_HOME_NAME%\ORA_SDTZ
(per client a 64 bit).
- Il fuso orario del database:
DBTIMEZONE
In realtà questo non è così importante nell'uso quotidiano, è rilevante solo per TIMESTAMP WITH LOCAL TIME ZONE
colonne del tipo di dati e definisce il formato di archiviazione.
Questo è NON il fuso orario di SYSDATE
o SYSTIMESTAMP
!!!
Non puoi modificare DBTIMEZONE
sul tuo database se il database contiene una tabella con un TIMESTAMP WITH LOCAL TIME ZONE
colonna e la colonna contiene dati. Altrimenti può essere modificato con ALTER DATABASE SET TIME_ZONE='...';
. La modifica non avrà effetto finché il database non sarà stato arrestato e riavviato.
DBTIMEZONE
viene impostato quando viene creato il database. Se non viene fornito alcun fuso orario durante la creazione del database, Oracle utilizza per impostazione predefinita il fuso orario del sistema operativo del server.
- Il fuso orario del sistema operativo del server di database:
Questo fuso orario è rilevante per il risultato di
-
SYSDATE
-
SYSTIMESTAMP
Naturalmente questo fuso orario non può essere modificato a livello di database. Nel caso in cui il tuo paese di origine utilizzi l'ora legale, questo fuso orario potrebbe cambiare due volte l'anno. Puoi interrogarlo con SELECT TO_CHAR(SYSTIMESTAMP, 'tzr') FROM dual;
, per esempio.
Quindi, se il tuo sistema operativo DB Server è configurato correttamente, dovresti ottenere l'ora legale dalla prossima settimana (almeno per l'Europa)