如何根据确切的时间戳查找数据

时间:2018-12-13 19:16:28

标签: google-bigquery

我正在尝试通过时间戳'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上找不到很多答案。

1 个答案:

答案 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函数的更多信息。