AT TIME ZONE
aceita apenas literal ou intervalo. Presto 320 adiciona
with_timezone
(para timestamp
valores) at_timezone
(para timestamp with time zone
valores) exatamente para este fim. Se você estiver usando uma versão mais antiga do Presto (como o Athena no momento da redação deste artigo), poderá usar a seguinte solução alternativa. Você pode converter seu valor de timestamp para um
varchar
, concatenar com zona e converter para 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:testado no Presto 320. Se isso ainda não funcionar no Athena, me avise.)