如何根据 Big Query 中的 UTC 时间戳在 Data Studio 中的本地时区显示 date/time
How to show date/time in local time zone in Data Studio from UTC timestamp in Big Query
我希望 Google Data Studio 报告使用用户的本地时区显示销售数据(包括按小时销售的热图报告)。我将数据存储在 BigQuery 中,时间戳字段存储为 UTC。
Per Data Studio Help,听起来时间戳应该存储为 UTC(我正在这样做)。我假设 Data Studio 足够聪明,可以将 UTC 转换为用户的本地时区,但事实并非如此。
除了热图报告上的时间显示为 8:00-17:00 而不是 12:00-21:00 之外,一切正常。它显示的是 UTC 而不是 EST(我的时区),我不知道如何解决这个问题。
Data Studio 会根据用户的时区自动调整报表数据吗?如果是这样,我做错了什么?如果没有,是否有任何解决方法可以支持来自多个时区的用户?
您可以使用 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 |
+-------------------------+
Data Studio 不会根据时区调整时间戳。除非指定,否则所有时间戳均以 UTC 显示。
在我的例子中,解决方案是将时间转换为 MICRO,然后添加 1 小时 (MICRO)。
TODATE(((name_of_column)+(3600000000)),'MICROS','%Y%m%d%H%M')
17 Sep 2020 Update 到 Google Data Studio 引入了对日期和时间的更新以及使用日期和时间的新功能和方法,其中包括 时区.
0)
确保 日期时间 字段已升级为较新的日期时间字段类型。
加了个GIF来说明:
1) EST
此 Calculated Field obtains the difference in SECOND
between UTC
and EST
by using the DATETIME_DIFF
函数,随后减去日期时间字段(在本报告中称为 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 来详细说明:
我希望 Google Data Studio 报告使用用户的本地时区显示销售数据(包括按小时销售的热图报告)。我将数据存储在 BigQuery 中,时间戳字段存储为 UTC。
Per Data Studio Help,听起来时间戳应该存储为 UTC(我正在这样做)。我假设 Data Studio 足够聪明,可以将 UTC 转换为用户的本地时区,但事实并非如此。
除了热图报告上的时间显示为 8:00-17:00 而不是 12:00-21:00 之外,一切正常。它显示的是 UTC 而不是 EST(我的时区),我不知道如何解决这个问题。
Data Studio 会根据用户的时区自动调整报表数据吗?如果是这样,我做错了什么?如果没有,是否有任何解决方法可以支持来自多个时区的用户?
您可以使用 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 |
+-------------------------+
Data Studio 不会根据时区调整时间戳。除非指定,否则所有时间戳均以 UTC 显示。
在我的例子中,解决方案是将时间转换为 MICRO,然后添加 1 小时 (MICRO)。
TODATE(((name_of_column)+(3600000000)),'MICROS','%Y%m%d%H%M')
17 Sep 2020 Update 到 Google Data Studio 引入了对日期和时间的更新以及使用日期和时间的新功能和方法,其中包括 时区.
0)
确保 日期时间 字段已升级为较新的日期时间字段类型。
加了个GIF来说明:
1) EST
此 Calculated Field obtains the difference in SECOND
between UTC
and EST
by using the DATETIME_DIFF
函数,随后减去日期时间字段(在本报告中称为 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 来详细说明: