sql >> Databasteknik >  >> RDS >> Oracle

Oracle 10g Time Zone Confusion

Det finns faktiskt 3 tidszoner här, inte 2

  • tidszonen för sessionen/klienten
    • Visas i SESSIONTIMEZONE
    • Detta är tidszonen CURRENT_DATE, LOCALTIMESTAMP och CURRENT_TIMESTAMP. Skillnaden mellan dessa 3 är returtypen, de returnerar ett DATUM, TIMESTAMP respektive TIMESTAMP WITH TIME ZONE)
  • Databasens tidszon
    • Visas i DBTIMEZONE
    • Detta är den tidszon som används för den interna lagringen av TIMESTAMP WITH LOCAL TIME ZONE-värden. Observera att värden konverteras till/från sessionens tidszon vid insert/select så det är faktiskt inte så viktigt som det verkar
    • Detta är INTE tidszonen för SYSDATE/SYSTIMESTAMP
  • Databasens OS-tidszon
    • I unix är den baserad på TZ-variabeln när Oracle startas
    • Detta är tidszonen för SYSDATE och SYSTIMESTAMP

I ditt första exempel kan jag se att sessionens TZ är UTC-6, databasen TZ är UTC och databasens OS-tidszon är UTC-6.

I ditt andra exempel kan jag se att sessionens TZ är UTC-6, databasen TZ är UTC+2 och databasens OS-tidszon är UTC+1.



  1. ADODFCMP Utility

  2. Istället för att trigger i SQL Server förlorar SCOPE_IDENTITY?

  3. Returnera en lista över databaser i SQLite

  4. Använda pt-pg-summary Percona Toolkit för PostgreSQL