Oracle
 sql >> Datenbank >  >> RDS >> Oracle

sysdate und dbtimezone unterscheiden sich in Oracle Database

Es ist ein verbreitetes Missverständnis, dass DBTIMEZONE ist die Zeitzone für SYSDATE und SYSTIMESTAMP

SYSDATE und SYSTIMESTAMP werden in der Zeitzone des Betriebssystems zurückgegeben, auf dem sich der Datenbankserver befindet.

DBTIMEZONE ist die (interne) Zeitzone von TIMESTAMP WITH LOCAL TIME Werte. Ich kenne keinen praktischen Nutzen davon. Beachten Sie, dass Sie DBTIMEZONE nicht ändern können auf Ihrer Datenbank, wenn die Datenbank eine Tabelle mit einem TIMESTAMP WITH LOCAL TIME ZONE enthält Spalte und die Spalte enthält Daten.

Wenn Sie die aktuelle Zeit bei DBTIMEZONE wünschen, führen Sie

aus
select SYSTIMESTAMP AT TIME ZONE DBTIMEZONE 
from dual;

CURRENT_TIMESTAMP AT TIME ZONE DBTIMEZONE funktioniert auch.

Siehe auch Wie zur Handhabung der Sommerzeit in der Oracle-Datenbank