FirebirdSQL logo

Obtention d’un fuseau horaire de session

Vous pouvez obtenir le fuseau horaire actuel de la session en utilisant la fonction RDB$GET_CONTEXT avec les arguments 'SYSTEM' pour l’espace de noms et 'SESSION_TIMEZONE' comme nom de variable.

Example 1. Obtention d’un fuseau horaire de session
set time zone '-02:00';
select rdb$get_context('SYSTEM', 'SESSION_TIMEZONE') from rdb$database;
-- returns -02:00

set time zone 'America/Sao_Paulo';
select rdb$get_context('SYSTEM', 'SESSION_TIMEZONE') from rdb$database;
-- returns America/Sao_Paulo

Format du fuseau horaire

Le fuseau horaire peut être spécifié comme une chaîne de caractères avec la région du fuseau horaire (par exemple, America/Sao_Paulo), ou commeDécalage hours:minutes par rapport à GMT (par exemple -03:00).Une liste des fuseaux horaires régionaux et de leurs identifiants se trouve dans le tableau suivant RDB$TIME_ZONES. Les règles de conversion des fuseaux horaires régionaux en un décalage en minutes peuvent être obtenues en utilisant la procédure suivante RDB$TIME_ZONE_UTIL.TRANSITIONS.

{TIME | TIMESTAMP} WITH TIMEZONE est considérée comme égale à une autre {TIME | TIMESTAMP} WITH TIMEZONE, si leur conversion à UTC est égal à par exemple time '10:00 -02' = time '09:00 -03', car les deux temps sont équivalents time '12:00 GMT'.Ceci est également vrai dans le contexte de la contrainte UNIQUE et pour le tri.