sql >> Databasteknik >  >> RDS >> Oracle

sysdate och dbtimezone olika i Oracle Database

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



  1. Få värdet från databasen i selecte tag HTML PHP MySQL

  2. Hur infogar man bulkdata i databasen åt gången?

  3. Markera icke sammanhängande datumintervall

  4. PostgreSQL Meltdown Benchmarks