AT TIME ZONE
accepterar endast bokstavlig eller intervall.
Presto 320 lägger till with_timezone
(för timestamp
värden) at_timezone
(för timestamp with time zone
värden) exakt för detta ändamål.
Om du använder en äldre Presto-version (som Athena när detta skrivs) kan du använda följande lösning. Du kan casta ditt tidsstämpelvärde till en varchar
, sammanfoga med zon och casta till 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)
(Obs:testat på Presto 320. Om detta inte fungerar på Athena än, låt mig veta.)