Procédure RDB$TIME_ZONE_UTIL.TRANSITIONS()

Procédure RDB$TIME_ZONE_UTIL.TRANSITIONS renvoie l'ensemble des règles pour le fuseau horaire situé entre l'horodateur de début et de fin.

Table 1. Paramètres d'entrée de la procédure RDB$TIME_ZONE_UTIL.TRANSITIONS
ParamètreTypeDescription

RDB$TIME_ZONE_NAME

CHAR(63)

Nom du fuseau horaire

RDB$FROM_TIMESTAMP

TIMESTAMP WITH TIME ZONE

Début de la plage de dates

RDB$TO_TIMESTAMP

TIMESTAMP WITH TIME ZONE

Fin de la plage de dates

Table 2. Paramètres de sortie de la procédure RDB$TIME_ZONE_UTIL.TRANSITIONS
ParamètreTypeDescription

RDB$START_TIMESTAMP

TIMESTAMP WITH TIME ZONE

Date d'entrée en vigueur de la règle

RDB$END_TIMESTAMP

TIMESTAMP WITH TIME ZONE

Date d'expiration

RDB$ZONE_OFFSET

SMALLINT

Décalage horaire en minutes pour un fuseau horaire donné

RDB$DST_OFFSET

SMALLINT

Décalage de l'heure d'été en minutes pour un fuseau horaire donné.

RDB$EFFECTIVE_OFFSET

SMALLINT

Décalage effectif, calculé comme suit RDB$ZONE_OFFSET + RDB$DST_OFFSET

Example 1. Utilisation de la procédure RDB$TIME_ZONE_UTIL.TRANSITIONS
SELECT
  RDB$START_TIMESTAMP,
  RDB$END_TIMESTAMP,
  RDB$ZONE_OFFSET AS ZONE_OFF,
  RDB$DST_OFFSET AS DST_OFF,
  RDB$EFFECTIVE_OFFSET AS OFF
FROM rdb$time_zone_util.transitions(
    'America/Sao_Paulo',
    timestamp '2017-01-01',
    timestamp '2019-01-01');
         RDB$START_TIMESTAMP            RDB$END_TIMESTAMP ZONE_OFF DST_OFF  OFF
============================ ============================ ======== ======= ====
2016-10-16 03:00:00.0000 GMT 2017-02-19 01:59:59.9999 GMT     -180      60 -120
2017-02-19 02:00:00.0000 GMT 2017-10-15 02:59:59.9999 GMT     -180       0 -180
2017-10-15 03:00:00.0000 GMT 2018-02-18 01:59:59.9999 GMT     -180      60 -120
2018-02-18 02:00:00.0000 GMT 2018-10-21 02:59:59.9999 GMT     -180       0 -180
2018-10-21 03:00:00.0000 GMT 2019-02-17 01:59:59.9999 GMT     -180      60 -120