BigQuery:将UTC转换为本地时间戳并按

时间:2018-08-20 12:10:04

标签: google-bigquery

所以

我已经测试了许多将时间戳转换为不同时区的功能,这些功能在查看数据时效果很好。但是我不知道该如何按照当地时间进行分组。

我想按天对用户活动进行分组。我将UTC中的所有数据与时区一起存储,并给定了用户活动类型,我希望将一天视为[2am-2am]。我已经尝试过这样的事情:

SELECT DATETIME_SUB(DATETIME(timestamp_ts, timezone), INTERVAL 2 HOUR) as local_ts, timezone, timestamp_ts as utc_timestamp FROM table GROUP BY 1, 2

我不确定这行得通。似乎我只是在更改数据的表示形式,而是用于分组的UTC时间(-2小时)。

1 个答案:

答案 0 :(得分:0)

由于您要按天对用户活动进行分组,因此应该对日期列而不是日期时间列进行分组。您可以通过截断日期时间来实现。

SELECT DATETIME_TRUNC(DATETIME_SUB(DATETIME(timestamp_ts, timezone), INTERVAL 2 HOUR), DAY) as local_dt, 
timezone, timestamp_ts as utc_timestamp FROM table GROUP BY 1, 2