Maintenant que vous avez des données stockées en UTC, vous pouvez les interroger et les afficher dans le fuseau horaire de votre choix. Dans cette étape, vous utiliserez la fonction EXTRACT et la clause AT TIME ZONE pour manipuler et formater vos horodatages.
Étape 1 : Extraire des parties d'un horodatage avec EXTRACT
La fonction EXTRACT vous permet d'extraire des composants spécifiques (comme l'année, le mois, l'heure) d'un horodatage. Extraions l'année de chaque événement.
SELECT event_name, EXTRACT(YEAR FROM event_time) AS event_year FROM events;
La requête extrait l'année de l'horodatage UTC stocké.
event_name | event_year
-------------------+------------
Conference Call | 2024
Project Meeting | 2024
Follow-up Meeting | 2024
(3 rows)
Étape 2 : Convertir les horodatages avec AT TIME ZONE
Pour visualiser l'heure UTC stockée dans un fuseau horaire local spécifique, utilisez la clause AT TIME ZONE. Convertissons toutes les heures d'événements au fuseau horaire America/Los_Angeles.
SELECT event_name, event_time AT TIME ZONE 'America/Los_Angeles' AS los_angeles_time FROM events;
Cette requête prend l'heure UTC (event_time) et affiche son équivalent en heure locale à Los Angeles.
event_name | los_angeles_time
-------------------+---------------------
Conference Call | 2024-01-20 10:00:00
Project Meeting | 2024-01-20 10:00:00
Follow-up Meeting | 2024-01-21 12:00:00
(3 rows)
Comme vous pouvez le constater, la 'Project Meeting' qui a eu lieu à 18:00:00 UTC est correctement affichée comme 10:00:00 en heure de Los Angeles.
Étape 3 : Combiner EXTRACT et AT TIME ZONE
Vous pouvez combiner ces fonctionnalités pour des requêtes plus puissantes. Par exemple, pour trouver l'heure de chaque événement tel qu'il s'est produit dans le fuseau horaire Europe/London :
SELECT event_name, EXTRACT(HOUR FROM event_time AT TIME ZONE 'Europe/London') AS event_hour_london FROM events;
Cette requête convertit d'abord l'heure au fuseau horaire de Londres, puis extrait l'heure.
event_name | event_hour_london
-------------------+-------------------
Conference Call | 18
Project Meeting | 18
Follow-up Meeting | 20
(3 rows)