AT TIME ZONE
accepterer kun bogstaver eller interval.
Presto 320 tilføjer with_timezone
(for timestamp
værdier) at_timezone
(for timestamp with time zone
værdier) præcis til dette formål.
Hvis du bruger ældre Presto-version (såsom Athena i skrivende stund), kan du bruge følgende løsning. Du kan caste din tidsstempelværdi til en varchar
, sammenkæde med zone og cast til 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)
(Bemærk:testet på Presto 320. Hvis dette ikke virker på Athena endnu, så lad mig det vide.)