AT TIME ZONE
přijímá pouze literál nebo interval.
Presto 320 přidává with_timezone
(pro timestamp
hodnoty) at_timezone
(pro timestamp with time zone
hodnoty) přesně pro tento účel.
Pokud používáte starší verzi Presto (jako je Athena v době psaní tohoto článku), můžete použít následující řešení. Hodnotu časového razítka můžete přenést do varchar
, zřetězit se zónou a přenést na 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)
(Poznámka:testováno na Presto 320. Pokud to na Atheně ještě nefunguje, dejte mi vědět.)