Oracle
 sql >> Database >  >> RDS >> Oracle

sysdate e dbtimezone diversi nel database Oracle

È un malinteso comune che DBTIMEZONE è il fuso orario per SYSDATE e SYSTIMESTAMP

SYSDATE e SYSTIMESTAMP vengono restituiti nel fuso orario del sistema operativo su cui risiede il server di database.

DBTIMEZONE è il fuso orario (interno) di TIMESTAMP WITH LOCAL TIME i valori. Non ne conosco alcun uso pratico. Nota, 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.

Se vuoi eseguire l'ora corrente a DBTIMEZONE

select SYSTIMESTAMP AT TIME ZONE DBTIMEZONE 
from dual;

CURRENT_TIMESTAMP AT TIME ZONE DBTIMEZONE funziona anche.

Vedi anche Come per gestire l'ora legale nel database Oracle