sql >> Database >  >> RDS >> Oracle

Oracle 10g tijdzone verwarring

Er zijn hier eigenlijk 3 tijdzones, niet 2

  • de tijdzone van de sessie/client
    • Getoond in SESSIONTIMEZONE
    • Dit is de tijdzone van CURRENT_DATE, LOCALTIMESTAMP en CURRENT_TIMESTAMP. Het verschil tussen die 3 is het retourtype, ze retourneren respectievelijk een DATE, TIMESTAMP en TIMESTAMP WITH TIME ZONE)
  • De tijdzone van de database
    • Getoond in DBTIMEZONE
    • Dit is de tijdzone die wordt gebruikt voor de interne opslag van TIMESTAMP MET LOKALE TIJDZONE-waarden. Merk op dat waarden worden geconverteerd naar/van sessietijdzone bij invoegen/selecteren, dus het is eigenlijk niet zo belangrijk als het lijkt
    • Dit is NIET de tijdzone van SYSDATE/SYSTIMESTAMP
  • De tijdzone van het database-besturingssysteem
    • In Unix is ​​het gebaseerd op de TZ-variabele wanneer Oracle wordt gestart
    • Dit is de tijdzone van SYSDATE en SYSTIMESTAMP

In uw eerste voorbeeld kan ik zien dat de sessie TZ UTC-6 is, de database TZ UTC is en de tijdzone van het database-besturingssysteem UTC-6 is.

In uw tweede voorbeeld kan ik zien dat de sessie TZ UTC-6 is, de database TZ UTC+2 is en de tijdzone van het database-besturingssysteem UTC+1 is.



  1. Unnes meerdere arrays parallel

  2. Heroku Postgres:Te veel verbindingen. Hoe vernietig ik deze verbindingen?

  3. Hoe ABS() werkt in MariaDB

  4. Python call sql-server opgeslagen procedure met tabelwaardeparameter