BigQuery从Firebase分析获得的event_timestamp与当前时间戳之间存在差异

时间:2019-09-18 02:04:30

标签: firebase google-bigquery firebase-analytics

我正在使用与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字段。他们可以将其转换为时间戳吗?

1 个答案:

答案 0 :(得分:2)

通常如果它是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