Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle:Recuperar por TZNAME É possível?


Podemos extrair o TIMEZONE_REGION de um timestamp, fornecendo um TIMESTAMP WITH TIMEZONE. Igual a:
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> 

O último resultado retorna UNKNOWN porque mais de um nome de fuso horário é mapeado para um deslocamento de menos quatro horas. Existem várias maneiras de definir o nome do fuso horário no nível da sessão; um desses provavelmente será a melhor maneira de contornar esse problema. Saiba mais .