在 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 时间的主要内容,如果未能解决你的问题,请参考以下文章

在 Bash 中将指数转换为整数

如何使用颤振将时间戳从 Firebase 转换为 DateTime

Python:如何将日期时间/时间戳从一个时区转换为另一个时区?

如何将时间戳从十六进制格式转换为 EPOCH 时间戳?

使用 sql 查询将元数据库中的预配置时间戳从 utc 格式转换为 ist

在 azure synapse 存储过程中将表名作为参数传递时将查询结果分配给变量