在 Synapse 中将时间戳从字符串转换为 EST 时间
Posted
技术标签:
【中文标题】在 Synapse 中将时间戳从字符串转换为 EST 时间【英文标题】:Convert timestamp from string to EST time in Synapse 【发布时间】:2022-01-11 10:48:23 【问题描述】:我是 Synapse 数据仓库的新手。
目前,我有一个名为 last_update_utc 作为字符串数据类型的时间戳列,它是 UTC 时间。我需要添加一个带有时间戳的新列 last_update_est 作为 datetime2 数据类型从 last_update_utc 列转换 - 转换还需要考虑 DST。您可以查看下面的示例输出:
id | last_update_utc (string) | last_update_est (datetime2)
1 | 2020-02-28T17:26:47.483698Z | 2020-02-28T12:26:47.483698Z
2 | 2021-09-03T22:59:19.093Z | 2021-09-03T18:59:19.093Z
第一行,不加夏令时差5小时,加夏令时差4小时。表名为hub.test
,最初有 id 和 last_update_utc 列。
Synapse DW中是否有简单的函数或方法可以实现上述任务?
谢谢
【问题讨论】:
【参考方案1】:将字符串转换为 datetime2 并应用 AT TIME ZONE 将 UTC 转换为所需的时区。
SELECT CONVERT(DATETIME2, '2021-09-03T22:59:19.093Z') AT TIME ZONE 'UTC' AT TIME ZONE 'Eastern Standard Time'as last_update_est
请参阅this document 了解更多关于 AT TIME ZONE 实施的信息。
【讨论】:
以上是关于在 Synapse 中将时间戳从字符串转换为 EST 时间的主要内容,如果未能解决你的问题,请参考以下文章
如何使用颤振将时间戳从 Firebase 转换为 DateTime
Python:如何将日期时间/时间戳从一个时区转换为另一个时区?