sql >> Base de Datos >  >> RDS >> Oracle

sysdate y dbtimezone diferentes en Oracle Database

Es un malentendido común que DBTIMEZONE es la zona horaria de SYSDATE y SYSTIMESTAMP

SYSDATE y SYSTIMESTAMP se devuelven en la zona horaria del sistema operativo en el que reside el servidor de la base de datos.

DBTIMEZONE es la zona horaria (interna) de TIMESTAMP WITH LOCAL TIME valores. No sé ningún uso práctico de la misma. Tenga en cuenta que no puede cambiar DBTIMEZONE en su base de datos si la base de datos contiene una tabla con un TIMESTAMP WITH LOCAL TIME ZONE columna y la columna contiene datos.

Si desea la hora actual en DBTIMEZONE, ejecute

select SYSTIMESTAMP AT TIME ZONE DBTIMEZONE 
from dual;

CURRENT_TIMESTAMP AT TIME ZONE DBTIMEZONE también está funcionando.

Consulte también Cómo para manejar el horario de verano en la base de datos de Oracle