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

2024-09-02 21:23:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

查询:

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 

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


Tags: 字符串zonenewdatetimeas格式select
2条回答

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

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_TIMEZONE(column_name,'America/Chicago')

您可以使用此转换帮助您将日期更改为另一个时区

MYSQL服务器8:

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

WHERE CONVERT_TZ(timeperiod, 'UTC', '{$this->timezone}') 
NOT BETWEEN 
{$timeperiods['today_start']} AND {$timeperiods['today_end']}

相关问题 更多 >