【问题标题】:How do I convert time zones in AWS Athena如何在 AWS Athena 中转换时区
【发布时间】:2021-12-07 10:37:16
【问题描述】:

在 Athena 中,我在数据库中存储了时区和日期时间,我想使用存储的时区来转换日期时间

我可以让这个查询工作

SELECT (my_date_time) AT TIME ZONE 'America/Los_Angeles' AS converted_time
FROM table_one;

如何用表中字段的值替换硬编码时区,例如

SELECT (my_date_time) AT TIME ZONE my_timezone AS converted_time
FROM table_one;

我在尝试第二个查询时收到此错误

第 8:41 行:输入“my_timezone”不匹配。期望:'ZONE'

编辑: 添加到 Guru Strons 的回答中,这就是我使用 at_timezone 的方式

WITH dataset (t, tz) AS (
   SELECT
     table_one.my_date_time,
     table_two.timezone
   FROM table_one
   LEFT JOIN table_two ON table_one.id = table_two.table_one_id
 )
SELECT t, tz, at_timezone(t, tz) FROM dataset

【问题讨论】:

    标签: sql amazon-web-services amazon-athena presto


    【解决方案1】:

    Ahtena 支持at_timezone 功能:

    WITH dataset (t, tz) AS (
        VALUES (TIMESTAMP '2001-08-22 03:04:05.321 America/Los_Angeles', 'America/New_York')
    )
    
    select at_timezone(t, tz)
    FROM dataset
    

    输出:

    _col0
    2001-08-22 06:04:05.321 America/New_York

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-18
      • 2021-01-20
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 2018-11-22
      相关资源
      最近更新 更多