PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Convertir un fuseau horaire UTC dans postgresql en EST (heure locale)

Ici à Londres, nous avons actuellement 1 heure d'avance sur UTC. Donc - si je prends votre fuseau horaire sans horodatage et que je dis qu'il est en UTC, je le ferai imprimer pour mon fuseau horaire local.

richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC');
        timezone        
------------------------
 2015-10-24 17:38:46+01
(1 row)

Mais vous voulez "EST" qui semble être quelque part dans les Amériques, à en juger par la valeur renvoyée. Vous pouvez envelopper l'expression dans une petite fonction SQL si vous le souhaitez.

richardh=> SELECT ((timestamp '2015-10-24 16:38:46') AT TIME ZONE 'UTC') AT TIME ZONE 'EST';
      timezone       
---------------------
 2015-10-24 11:38:46
(1 row)

Modifier :comment le faire dans une requête

SELECT ((stored_timestamp AT TIME ZONE 'UTC') AT TIME ZONE 'EST') AS local_timestamp
FROM my_table;

Vous voudrez probablement vous procurer un livre d'introduction à SQL si ce genre de chose vous pose des problèmes.