作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 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
结果是:
我希望 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 中,当使用 CONVERT_TIMEZONE 函数将一些本地日期转换为 UTC,然后再转换回本地时区时,最终结果会偏移一小时。例如: ALTER SESSION SET TIM
我是一名优秀的程序员,十分优秀!