Det är ett vanligt missförstånd att DBTIMEZONE
är tidszonen för SYSDATE
och SYSTIMESTAMP
SYSDATE
och SYSTIMESTAMP
returneras i tidszonen för operativsystemet där databasservern finns.
DBTIMEZONE
är den (interna) tidszonen för TIMESTAMP WITH LOCAL TIME
värden. Jag vet ingen praktisk användning av det. Observera att du inte kan ändra DBTIMEZONE
på din databas om databasen innehåller en tabell med en TIMESTAMP WITH LOCAL TIME ZONE
kolumnen och kolumnen innehåller data.
Om du vill ha aktuell tid vid DBTIMEZONE kör
select SYSTIMESTAMP AT TIME ZONE DBTIMEZONE
from dual;
CURRENT_TIMESTAMP AT TIME ZONE DBTIMEZONE
fungerar också.
Se även Hur för att hantera sommartid i Oracle-databasen