AT TIME ZONE
acepta solo literal o intervalo.
Presto 320 agrega with_timezone
(para timestamp
valores) at_timezone
(para timestamp with time zone
valores) exactamente para este propósito.
Si está utilizando una versión anterior de Presto (como Athena en el momento de escribir este artículo), puede utilizar la siguiente solución alternativa. Puede convertir su valor de marca de tiempo en un varchar
, concatenar con zona y convertir a 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)
(Nota:probado en Presto 320. Si esto aún no funciona en Athena, házmelo saber).