在 Synapse 中将时间戳从字符串转换为 EST 时间

Convert timestamp from string to EST time in Synapse

我是 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小时。 table 名称是 hub.test,最初有 id 和 last_update_utc 列。

在Synapse DW中是否有简单的功能或方法来实现上述任务?

谢谢

将字符串转换为 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 实施的更多信息。