我正在尝试通过时间戳'2018-12-08 00:00:42.808 America/Los_Angeles'
抓取BigQuery中的数据行。这适用于between
子句。例如,timestamp BETWEEN '....00:00:42.808...' AND '....00:00:42.809...'
。
但是,我只想做timestamp = '....00:00:42.808...'
时什么也找不到。我不确定为什么会这样,对于这种特殊情况,我似乎在Google上找不到很多答案。
答案 0 :(得分:1)
Google BigQuery中的时间戳非常准确,因此您的查询可能未完全击中表中的时间戳。如果要以毫秒,秒或任何舍入级别达到时间戳,可以使用TIMESTAMP_TRUNC函数。使用此功能,您可以拥有如下where子句:
where TIMESTAMP_TRUNC(timestamp, millisecond, 'America/Los_Angeles')='2018-12-08 00:00:42.808 America/Los_Angeles'
这将为您提供预期的毫秒级结果。您可以从https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators中找到有关TIMESTAMP_TRUNC和其他BigQuery函数的更多信息。