gpt4 book ai didi

amazon-web-services - Prestosql/亚马逊雅典娜 : Time Zone Change

转载 作者:行者123 更新时间:2023-12-05 05:59:51 26 4
gpt4 key购买 nike

我需要在不更改日期和时间的情况下将 UTC 时间戳更改为“美国/东部”时间戳 - 基本上只更新时区信息,然后将其转换为不同的时区。

例如(我需要的):

'2021-06-09 19:00:36.000000' UTC --> '2021-06-09 19:00:36.000000' 美国/东部

然后我需要将其转换为“America/New_York”。

'2021-06-09 19:00:36.000000' 美国/东部 --> '2021-06-09 16:00:36.000000' 美国/洛杉矶


当我尝试下面的查询时,它没有给我正确的结果,因为它正在从 UTC 转换为 America/Los Angeles。什么时候应该是美国/美国东部/洛杉矶。

SELECT id
, date_utc
, CAST(date_utc AT TIME ZONE 'America/Los Angeles') AS date_la
FROM call_records

最佳答案

我不确定这是否适用于 Athena,因为它基于非常旧的 Presto/Trino 版本。

在最新版本的 Trino ( formerly known as PrestoSQL ) 中,您可以这样做:

  • timestamp with time zone 转换为 timestamp 以删除时区部分。
  • 然后,使用with_timezoneUS/Eastern 格式重新解释生成的 timestamp
  • 最后,使用 AT TIME ZONE在保留瞬间的同时更改生成的 timestamp with time zone 的时区。

看看下面的例子:

trino:tiny> WITH t(ts) AS (VALUES TIMESTAMP '2021-06-09 19:00:36.000000 UTC')
-> SELECT with_timezone(cast(ts as timestamp(6)), 'US/Eastern') AT TIME ZONE 'America/Los_Angeles'
-> FROM t;
_col0
------------------------------------------------
2021-06-09 16:00:36.000000 America/Los_Angeles
(1 row)

关于amazon-web-services - Prestosql/亚马逊雅典娜 : Time Zone Change,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67931496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com