有没有办法从雪花数据库中提取 timezone_abbr?

Is there a way to extract timezone_abbr from snowflake database?

ORACLE 查询:select extract(timezone_abbr FROM sysdate at TIME zone 'America/New_York') from dual;

有什么方法可以在雪花数据库中获取timezone_abbr,类似于我们在ORACLE中所做的?

没有类似Oracle的直接从snowflake中提取时区缩写的方法。 但是我们可以通过计算两个时区之间的差异来找到它。

SELECT cast(your_column AS TIMESTAMP) yourtimecolumn
    ,decode(
        extract(
           hour FROM 
            convert_timezone('America/New_York', 'UTC', 
              cast(your_column AS TIMESTAMP)
            )
          ) - 
      extract(hour FROM cast(your_column AS TIMESTAMP)
      ), 
  4, 'EDT', -20, 'EDT', 5, 'EST', -19, 'EST') timezone
FROM your_table
WHERE cast(your_column AS TIMESTAMP) IS NOT NULL 
limit 100

以上查询假定您的时间戳在 America/Newyork 中,并且它尝试将其转换为 UTC,因为那是全球时区。

转换后,按照通常的方式,如果时差为 4,则时区为美国东部时间,如果时差为 5,则时区为美国东部时间。

编辑:包括因 UTC 转换而超过一天的时间

不幸的是,Snowflake 不存储时区信息 - 它只存储与 UTC 的偏移量。

arunb2w 的答案是有效的。您可以通过将 extracttzhtzm 组件一起使用来使其更简单。