AT TIME ZONE
chỉ chấp nhận theo nghĩa đen hoặc khoảng thời gian.
Presto 320 thêm with_timezone
(cho timestamp
giá trị) at_timezone
(cho timestamp with time zone
giá trị) chính xác cho mục đích này.
Nếu bạn đang sử dụng phiên bản Presto cũ hơn (chẳng hạn như Athena tính đến thời điểm viết bài này), bạn có thể sử dụng cách giải quyết sau. Bạn có thể truyền giá trị dấu thời gian của mình thành varchar
, nối với múi giờ và truyền tới 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)
(Lưu ý:đã thử nghiệm trên Presto 320. Nếu điều này chưa hoạt động trên Athena, hãy cho tôi biết.)