sql >> Base de Datos >  >> RDS >> Oracle

Oracle:Recuperar por TZNAME ¿Es posible?

Podemos extraer la TIMEZONE_REGION de una marca de tiempo, proporcionando su TIMESTAMP CON TIMEZONE. Así:

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> 

El último resultado devuelve DESCONOCIDO porque más de un nombre de zona horaria se asigna a un desplazamiento de menos cuatro horas. Hay varias formas de configurar el nombre de la zona horaria a nivel de sesión; es probable que una de ellas sea la mejor manera de solucionar este problema. Más información .