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

Oracle:Recupera da TZNAME È possibile?

Possiamo estrarre TIMEZONE_REGION da un timestamp, fornendo un TIMESTAMP WITH TIMEZONE. Così:

SQL> select extract(timezone_region from current_timestamp)
  2  from dual
  3  /

EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
----------------------------------------------------------------
CET

SQL>  alter session set time_zone='UTC';

Session altered.

SQL> select extract(timezone_region from current_timestamp)
  2  from dual
  3  /

EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
----------------------------------------------------------------
UTC

SQL> alter session set time_zone='-04:00';

Session altered.

SQL> select extract(timezone_region from current_timestamp)
  2  from dual
  3  /

EXTRACT(TIMEZONE_REGIONFROMCURRENT_TIMESTAMP)
----------------------------------------------------------------
UNKNOWN

SQL> 

L'ultimo risultato restituisce UNKNOWN perché più nomi di fuso orario vengono mappati su un offset di meno quattro ore. Esistono vari modi per impostare il nome del fuso orario a livello di sessione; è probabile che uno di questi sia il modo migliore per aggirare questo problema. Scopri di più .