如何根据 bigquery 中的时区列将 UTC 时间转换为本地时区?
Posted
技术标签:
【中文标题】如何根据 bigquery 中的时区列将 UTC 时间转换为本地时区?【英文标题】:How to convert UTC time to local timezones based on timezone column in bigquery? 【发布时间】:2020-03-24 04:06:12 【问题描述】:我一直在尝试使用 GBQ 中的标准 SQL 将每个 UTC 时间转换回适当的本地时区,但找不到动态执行此操作的好方法,因为我可能在数据库中有大量不同的时区名称。我想知道是否有人有想法?
我的表格包含 2 个不同的列(见截图)
【问题讨论】:
预期的输出是什么? - 请澄清 @MikhailBerlyant 如果有意义的话,我希望有一个名为“local_time”的新专栏。谢谢。 【参考方案1】:以下示例适用于 BigQuery 标准 SQL
#standardSQL
WITH `project.dataset.yourtable` AS (
SELECT 'Pacific/Honolulu' timezone, TIMESTAMP '2020-03-01 03:41:27 UTC' UTC_timestamp UNION ALL
SELECT 'America/Los_Angeles', '2020-03-01 03:41:27 UTC'
)
SELECT *,
DATETIME(UTC_timestamp, timezone) AS local_time
FROM `project.dataset.yourtable`
有输出
Row timezone UTC_timestamp local_time
1 Pacific/Honolulu 2020-03-01 03:41:27 UTC 2020-02-29T17:41:27
2 America/Los_Angeles 2020-03-01 03:41:27 UTC 2020-02-29T19:41:27
【讨论】:
以上是关于如何根据 bigquery 中的时区列将 UTC 时间转换为本地时区?的主要内容,如果未能解决你的问题,请参考以下文章