как найти данные на основе точной метки времени - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь получить строку данных в 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 для этого конкретного случая.

1 Ответ

0 голосов
/ 13 декабря 2018

Метка времени в Google BigQuery довольно точная, поэтому ваш запрос, вероятно, не соответствует ТОЧНО меткам времени в вашей таблице.Вы можете использовать функцию TIMESTAMP_TRUNC, если хотите использовать метку времени с точностью до миллисекунды, секунды или любого округленного уровня.С помощью этой функции вы можете иметь предложение where, подобное этому:

where TIMESTAMP_TRUNC(timestamp, millisecond, 'America/Los_Angeles')='2018-12-08 00:00:42.808 America/Los_Angeles'

Это даст вам результат на ожидаемом уровне миллисекунды.Вы можете найти больше информации о TIMESTAMP_TRUNC и других функциях BigQuery из https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...