我正在尝试通过timestamp在BigQuery中获取数据行'2018-12-08 00:00:42.808 America/Los_Angeles'
。这适用于between
子句。例如,timestamp BETWEEN '....00:00:42.808...' AND '....00:00:42.809...'
。
但是,当我只想做的时候我什么都找不到timestamp = '....00:00:42.808...'
。我不确定为什么会这样,对于这种特殊情况,我似乎在Google上找不到很多答案。
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函数的更多信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句