首页 > 解决方案 > 如何根据 bigquery 中的时区列将 UTC 时间转换为本地时区?

问题描述

我一直在尝试使用 GBQ 中的标准 SQL 将每个 UTC 时间转换回适当的本地时区,但找不到动态执行此操作的好方法,因为我可能在数据库中有大量不同的时区名称。我想知道是否有人有想法?

我的表包含 2 个不同的列(见截图)

在此处输入图像描述

标签: google-bigquerytimezonetimestamp-with-timezone

解决方案


以下示例适用于 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  

推荐阅读