sql >> Database teknologi >  >> RDS >> Oracle

Oracle 10g tidszoneforvirring

Der er faktisk 3 tidszoner her, ikke 2

  • tidszonen for sessionen/klienten
    • Vist i SESSIONTIMEZONE
    • Dette er tidszonen CURRENT_DATE, LOCALTIMESTAMP og CURRENT_TIMESTAMP. Forskellen mellem disse 3 er returtypen, de returnerer henholdsvis DATO, TIDSSTYKKE og TIDSSTYKKE MED TIDZONE)
  • Databasens tidszone
    • Vist i DBTIMEZONE
    • Dette er den tidszone, der bruges til den interne lagring af TIMESTAMP WITH LOCAL TIME ZONE-værdier. Bemærk, at værdier konverteres til/fra sessionens tidszone ved indsæt/vælg, så det faktisk ikke er så vigtigt, som det ser ud til
    • Dette er IKKE tidszonen for SYSDATE/SYSTIMESTAMP
  • Databasens OS-tidszone
    • I unix er det baseret på TZ-variablen, når Oracle startes
    • Dette er tidszonen for SYSDATE og SYSTIMESTAMP

I dit første eksempel kan jeg se, at sessionens TZ er UTC-6, databasens TZ er UTC, og databasens OS-tidszone er UTC-6.

I dit andet eksempel kan jeg se, at sessionens TZ er UTC-6, databasens TZ er UTC+2, og databasens OS-tidszone er UTC+1.



  1. En tilgang til indeksjustering – del 1

  2. SQL NOT Operator

  3. Oracle SQL udviklerværktøj:Download og installation

  4. Er der en måde at køre MySQL in-memory for JUnit test cases?