Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Fonction CONVERT_TIMEZONE
CONVERT_TIMEZONE convertit un horodatage d’un fuseau horaire à un autre. La fonction s'ajuste automatiquement à l'heure d'été.
Syntaxe
CONVERT_TIMEZONE ( ['source_timezone',] 'target_timezone', 'timestamp')
Arguments
- source_timezone
-
(Facultatif) Fuseau horaire de l’horodatage actuel. La valeur par défaut est UTC.
- target_timezone
-
Fuseau horaire du nouvel horodatage.
- timestamp
-
Colonne timestamp ou expression qui convertit implicitement en un horodatage.
Type de retour
TIMESTAMP
Exemples
L’exemple suivant convertit la valeur d’horodatage du fuseau horaire UTC par défaut en HNP.
select convert_timezone('PST', '2008-08-21 07:23:54');
convert_timezone ------------------------ 2008-08-20 23:23:54
L’exemple suivant convertit la valeur d’horodatage dans la colonne LISTTIME du fuseau horaire UTC par défaut en HNP. Même si l’horodatage est à l’heure d’été, il est converti en heure normale, car le fuseau horaire cible est spécifié comme abréviation (PST).
select listtime, convert_timezone('PST', listtime) from listing where listid = 16;
listtime | convert_timezone --------------------+------------------- 2008-08-24 09:36:12 2008-08-24 01:36:12
L’exemple suivant convertit une colonne LISTTIME d’horodatage du fuseau horaire UTC par défaut en fuseau horaire des États-Unis/Pacifique. Le fuseau horaire cible utilise un nom de fuseau horaire, et l’horodatage se situe pendant la période l’heure d’été, donc la fonction renvoie l’heure.
select listtime, convert_timezone('US/Pacific', listtime) from listing where listid = 16;
listtime | convert_timezone --------------------+--------------------- 2008-08-24 09:36:12 | 2008-08-24 02:36:12
L’exemple suivant convertit une chaîne d’horodatage de l’EST à PST :
select convert_timezone('EST', 'PST', '20080305 12:25:29');
convert_timezone ------------------- 2008-03-05 09:25:29
L’exemple suivant convertit un horodatage à l’heure normale de l’est des États-Unis, car le fuseau horaire cible utilise un nom de fuseau horaire (Amérique/New_York) et que l’horodatage est à l’heure normale.
select convert_timezone('America/New_York', '2013-02-01 08:00:00');
convert_timezone --------------------- 2013-02-01 03:00:00 (1 row)
L’exemple suivant convertit un horodatage à l’heure d’été de l’est des États-Unis, car le fuseau horaire cible utilise un nom de fuseau horaire (Amérique/New_York) et que l’horodatage est à l’heure d’été.
select convert_timezone('America/New_York', '2013-06-01 08:00:00');
convert_timezone --------------------- 2013-06-01 04:00:00 (1 row)
L’exemple suivant illustre l’utilisation des décalages.
SELECT CONVERT_TIMEZONE('GMT','NEWZONE +2','2014-05-17 12:00:00') as newzone_plus_2, CONVERT_TIMEZONE('GMT','NEWZONE-2:15','2014-05-17 12:00:00') as newzone_minus_2_15, CONVERT_TIMEZONE('GMT','America/Los_Angeles+2','2014-05-17 12:00:00') as la_plus_2, CONVERT_TIMEZONE('GMT','GMT+2','2014-05-17 12:00:00') as gmt_plus_2;
newzone_plus_2 | newzone_minus_2_15 | la_plus_2 | gmt_plus_2 ---------------------+---------------------+---------------------+--------------------- 2014-05-17 10:00:00 | 2014-05-17 14:15:00 | 2014-05-17 10:00:00 | 2014-05-17 10:00:00 (1 row)