AT TIME ZONE
accetta solo letterale o intervallo.
Presto 320 aggiunge with_timezone
(per timestamp
valori) at_timezone
(per timestamp with time zone
valori) esattamente per questo scopo.
Se stai utilizzando una versione Presto precedente (come Athena al momento della stesura di questo articolo), puoi utilizzare la seguente soluzione alternativa. Puoi trasmettere il valore del timestamp a un varchar
, concatena con zone e trasmetti 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:testato su Presto 320. Se questo non funziona ancora su Athena, fammi sapere.)