snowflake-cloud-data-platform - 雪花 CONVERT_TIMEZONE 错误?

标签 snowflake-cloud-data-platform

在 Snowflake 中,当使用 CONVERT_TIMEZONE 函数将一些本地日期转换为 UTC,然后再转换回本地时区时,最终结果会偏移一小时。例如:

ALTER SESSION SET TIMEZONE = 'Canada/Eastern';
select
cast('1949-04-24' as timestamp) as date_local -- because TIMEZONE = 'Canada/Eastern'
, convert_timezone('Canada/Eastern', 'UTC', '1949-04-24') as date_utc
, convert_timezone('UTC', 'Canada/Eastern', convert_timezone('Canada/Eastern', 'UTC', '1949-04-24')) as date_local1

结果是:

<表类="s-表"> <头> DATE_LOCAL DATE_UTC DATE_LOCAL1 <正文> 1949-04-24 00:00:00.0 1949-04-24 05:00:00.0 1949-04-24 01:00:00.0

我希望 DATE_LOCAL 和 DATE_LOCAL1 是相同的,但是 DATE_LOCAL1 是一个小时。 这是预期的吗?我是否遗漏了什么或 CONVERT_TIMEZONE 函数中存在错误?

最佳答案

这不是错误。这是关于夏令时 (DST) 的。 1949 年,DST 从 4 月 24 日星期日 00:00 开始。所以当你把它转换成 UTC 时,它变成了 1949-04-24 05:00:00.0。当您将它转换回来时,由于夏令时,它变成了 01:00,因为这是时钟拨快一小时的时间。

关于snowflake-cloud-data-platform - 雪花 CONVERT_TIMEZONE 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70088220/

相关文章:

snowflake-cloud-data-platform - 雪花用户的默认角色不存在

sql - 如何使用自动增量列在 Snowflake 中创建 View

snowflake-cloud-data-platform - 我们可以在 Snowflake 中使用参数化 View 吗?

javascript - 将 javascript 库包含到 Snowflake UDF 中

snowflake-cloud-data-platform - 雪花 : copy into statement

stream - 有没有人创建了一个程序来手动清除雪花中的流?

snowflake-task - 使用流和任务插入多个表

snowflake-cloud-data-platform - 将列添加到雪花 View 中

SQL:在 CTE 内构建可变输入数字的数字表

snowflake-cloud-data-platform - 将雪花数据发送到 REST API (POST) 的方法