Nous pouvons extraire le TIMEZONE_REGION d'un horodatage, en fournissant un TIMESTAMP WITH TIMEZONE. Comme ceci :
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>
Le dernier résultat renvoie UNKNOWN car plusieurs noms de fuseau horaire correspondent à un décalage de moins quatre heures. Il existe différentes manières de définir le nom du fuseau horaire au niveau de la session ; l'un d'entre eux est probablement la meilleure façon de contourner ce problème. En savoir plus .