Python Athena选择查询将UTC时间戳转换为所需的区域时间戳格式

Python Athena选择查询将UTC时间戳转换为所需的区域时间戳格式,python,sql,python-2.7,amazon-athena,Python,Sql,Python 2.7,Amazon Athena,我在下面的Athena查询中尝试了使用额外字符串America/New_York(不是预期格式)获取输出,需要使用Athena查询从值中删除额外字符串 查询: SELECT execution_date, execution_date AT TIME ZONE 'America/New_York' as us,AT_TIMEZONE(execution_date, 'America/New_York') as us2 FROM "db"."table" limit 3; 上述查询的输出: ex

我在下面的Athena查询中尝试了使用额外字符串America/New_York(不是预期格式)获取输出,需要使用Athena查询从值中删除额外字符串

查询:

SELECT execution_date, execution_date AT TIME ZONE 'America/New_York' as us,AT_TIMEZONE(execution_date, 'America/New_York') as us2 FROM "db"."table" limit 3;
上述查询的输出:

execution_date                  us                                              us2 
2019-12-04 13:50:47.000 2019-12-04 08:50:47.000 America/New_York    2019-12-04 08:50:47.000 America/New_York 
预期产出:

execution_date                  us                                              us2 
2019-12-04 13:50:47.000   2019-12-04 08:50:47.000                       2019-12-04 08:50:47.000 

如果需要更多信息,请告诉我。

您可以使用此转换帮助您将日期更改为其他时区

MYSQL服务器8:

CONVERT_TZ(timeperiod, 'UTC', 'Asia/Tehran')


我试过了,它可以工作,但它在时间戳中给出了区域的名称,这可能是您想要的,也可能不是

SELECT AT_TIMEZONE(DATE_PARSE(timestamp,'%Y-%m-%d %H:%i:%s'),'America/Chicago') FROM table_name; 
输出类似于2020-05-07 17:09:19.000 America/Chicago,时间戳根据时区进行调整,最后是时区名称

我想这就是雅典娜用时区表示时间戳的方式


编辑:如果列的类型已经是TIMESTAMP而不是VARCHAR,那么只需使用AT_TIMEZONEcolumn_name,'America/Chicago'

下面的错误-语法错误:第1:77行:函数convertz未在Athenalok链接中注册,此时您必须将mysql更新为版本8,他要的是雅典娜,不是MySQL。看起来他把mysqltag@RiggsFolly是的,我正在Amazon Athena服务中尝试这一点,我已经删除了MySQL标记,因为它让人们感到困惑。下面的问题:语法错误:第1:89行:意外参数时间戳,函数日期解析的varchar17。预期日期:date_parsevarcharx,varchary@Ahito看起来您的列类型已经是TIMESTAMP类型。在这种情况下,只需运行SELECT AT_TIMEZONEcolumn_name,从表_name中选择“America/Chicago”;我在上面的第三个字段的查询中使用了相同的方法。2仍然会附加额外的字符串。想要忽略额外的字符串。我想这就是带时区的时间戳在雅典娜中显示的方式。但是,如果您仍然想删除字符串,请选择Table EngEngNoNo.PrimeCeluMnNoNe',作为Table String中的TimeStimpPoCl,请考虑投票并标记答案,如回答您的问题:
SELECT AT_TIMEZONE(DATE_PARSE(timestamp,'%Y-%m-%d %H:%i:%s'),'America/Chicago') FROM table_name;