所以
我已经测试了许多将时间戳转换为不同时区的功能,这些功能在查看数据时效果很好。但是我不知道该如何按照当地时间进行分组。
我想按天对用户活动进行分组。我将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小时)。
答案 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