【问题标题】:How to show date/time in local time zone in Data Studio from UTC timestamp in Big Query如何根据 Big Query 中的 UTC 时间戳在 Data Studio 中显示本地时区的日期/时间
【发布时间】:2019-04-01 19:26:31
【问题描述】:

我希望 Google 数据洞察报告使用用户的本地时区显示销售数据(包括按小时销售的热图报告)。我将数据存储在 BigQuery 中,时间戳字段存储为 UTC。

根据Data Studio Help,听起来时间戳应该存储为 UTC(我正在这样做)。我认为 Data Studio 足够聪明,可以将 UTC 转换为用户的本地时区,但事实并非如此。

除了热图报告中的时间显示为 8:00-17:00 而不是 12:00-21:00 之外,一切都运行良好。它显示的是 UTC 而不是 EST(我的时区),我不知道如何解决这个问题。

数据洞察是否会根据用户的时区自动调整报表数据?如果是这样,我做错了什么?如果没有,是否有任何解决方法可以支持来自多个时区的用户?

【问题讨论】:

    标签: google-bigquery google-data-studio


    【解决方案1】:

    您可以使用 TIMESTAMP() 函数的第二个参数将 UTC 时间戳转换为特定时区。这是 Big Query 支持的 a list of time zones

    ex. SELECT TIMESTAMP("2008-12-25 15:30:00", "America/New_York") AS timestamp_in_est;
    
    +-------------------------+
    | timestamp_in_est        |
    +-------------------------+
    | 2008-12-25 20:30:00 UTC | 
    +-------------------------+
    

    数据洞察不会根据时区调整时间戳。除非指定,否则所有时间戳均以 UTC 显示。

    【讨论】:

      【解决方案2】:

      Google Data Studio 的17 Sep 2020 Update 介绍了日期和时间的更新以及处理日期和时间的新功能和方法,其中包括时区

      0) Upgrade the Date Field

      确保 日期时间 字段已升级为更新的日期时间字段类型。

      添加了一个 GIF 来详细说明:

      1) EST

      Calculated Field 使用DATETIME_DIFF 函数获得UTCEST 之间SECOND 的差值,然后用日期时间字段减去差值(在此报告中称为DateTimeField):

      PARSE_DATETIME(
          "%s",
          CAST(CAST(FORMAT_DATETIME("%s",DateTimeField)AS NUMBER) - DATETIME_DIFF(CURRENT_DATETIME("UTC"),CURRENT_DATETIME("EST"), SECOND)AS TEXT))
      

      Google Data Studio Report 和一个 GIF 来详细说明:

      【讨论】:

        【解决方案3】:

        在我的情况下,解决方案是将时间转换为 MICRO,然后添加 1 小时(MICRO)。

        TODATE(((name_of_column)+(3600000000)),'MICROS','%Y%m%d%H%M')
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-09
          • 2011-06-06
          • 1970-01-01
          相关资源
          最近更新 更多