如何在Amazon Athena中从UTC时间戳计算缩写时区代码?
在Amazon Athena中获取时区缩写(如AEDT/AEST)
可以实现这个需求。Amazon Athena基于Presto引擎,支持通过特定函数提取对应时区的缩写,并且会自动根据日期判断夏令时/标准时间时段。
示例实现代码
基于你提供的数据集,修改查询即可返回对应的时区缩写:
WITH dataset (t, tz) AS ( VALUES (TIMESTAMP '2001-01-01 03:04:05.321 UTC', 'Australia/Melbourne'), -- 夏令时时段,对应AEDT (TIMESTAMP '2001-06-01 03:04:05.321 UTC', 'Australia/Melbourne') -- 标准时间时段,对应AEST ) SELECT t AS utc_timestamp, at_timezone(t, tz) AS local_timestamp, date_format(at_timezone(t, tz), '%Z') AS timezone_abbreviation FROM dataset
说明
date_format函数中的%Z格式符用于提取时区的缩写名称,Athena会根据时间戳所在的时段自动返回对应的夏令时(如AEDT)或标准时间(如AEST)缩写。- 这里使用的
Australia/Melbourne是IANA时区标识符,Athena依赖IANA时区数据库,可以正确识别该时区的夏令时切换规则。
内容的提问来源于stack exchange,提问作者Damien Sawyer
相关产品推荐
相关产品推荐

