AT TIME ZONE
accepteert alleen letterlijk of interval.
Presto 320 voegt with_timezone
toe
(voor timestamp
waarden) at_timezone
(voor timestamp with time zone
waarden) precies voor dit doel.
Als u een oudere Presto-versie gebruikt (zoals Athena op het moment van schrijven), kunt u de volgende tijdelijke oplossing gebruiken. U kunt uw tijdstempelwaarde casten naar een varchar
, samenvoegen met zone en casten naar 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)
(Opmerking:getest op Presto 320. Als dit nog niet werkt op Athena, laat het me weten.)