BigQuery 从 firebase 分析和当前时间戳中获取 event_timestamp 之间的差异

BigQuery get difference between event_timestamp from firebase analytics and current timestamp

我正在使用与 Firebase Analytics 集成的 bigquery,我正在尝试查询 event_timestamp 和当前时间戳之间的差异(以小时为单位)。我是这样的:

SELECT TIMESTAMP_DIFF(event_timestamp, CURRENT_TIMESTAMP(), HOUR)
FROM my-firebase-analytics-table
WHERE event_name = 'session_start'

对于此查询,我在 TIMESTAMP_DIFF(event_timestamp, CURRENT_TIMESTAMP(), HOUR) 中遇到错误。错误是:

No matching signature for function TIMESTAMP_DIFF for argument types: INT64, TIMESTAMP, DATE_TIME_PART. Supported signature: TIMESTAMP_DIFF(TIMESTAMP, TIMESTAMP, DATE_TIME_PART)

对于我所做的测试,我可以得到的是 event_timestamp 字段不是 TIMESTAMP 字段。他们是我可以将其转换为 TIMESTAMP 的方法吗?

通常如果它是 INT64 - 它从纪元开始以毫秒为单位呈现

要转换为时间戳 - 使用 TIMESTAMP_MILLIS(int64_expression),如下例

#standardSQL   
SELECT TIMESTAMP_DIFF(TIMESTAMP_MILLIS(event_timestamp), CURRENT_TIMESTAMP(), HOUR)
FROM `project.dataset.my-firebase-analytics-table`
WHERE event_name = 'session_start'

显然,它可以是秒或微秒的 INT64 - 因此在这种情况下您将使用相应的对应项 - TIMESTAMP_MICROS 或 TIMESTAMP_SECONDS