AT TIME ZONE
n'accepte que le littéral ou l'intervalle.
Presto 320 ajoute with_timezone
(pour timestamp
valeurs) at_timezone
(pour timestamp with time zone
valeurs) exactement dans ce but.
Si vous utilisez une ancienne version de Presto (comme Athena au moment de la rédaction de cet article), vous pouvez utiliser la solution de contournement suivante. Vous pouvez convertir votre valeur d'horodatage en un varchar
, concaténer avec zone et convertir en timestamp with time zone
.
presto> select cast(cast(t as varchar) || ' ' || zone as timestamp with time zone)
from (values (timestamp '2017-06-01 12:34:56.789', 'US/Pacific')) x(t, zone);
_col0
---------------------------------------------
2017-06-01 12:34:56.789 America/Los_Angeles
(1 row)
(Remarque :testé sur Presto 320. Si cela ne fonctionne pas encore sur Athena, faites-le moi savoir.)