Я недавно начал использовать сервис Google BigQuery и его Python API для запросов к большим базам данных.Я новичок в SQL, и документация BigQuery не очень полезна для того, что я делаю.
В настоящее время я просматриваю базу данных reddit_comments, и есть тег 'creation_utc', по которому я пытаюсь отфильтровать.Это поле create_utc соответствует временным меткам Unix (т. Е. 1 ноября, 12:00 - 1541030400)
Я бы хотел получать комментарии изо дня в день (или между двумя временными метками Unix), но таким образом, чтобы яПеребираю каждый день.Примерно так:
from datetime import datetime, timedelta
start = datetime.fromtimestamp(1538352000)
end = datetime.fromtimestamp(1541030400)
time = start
while time < end:
print(time)
time = time + timedelta(days = 1)
Время печати здесь дает один вид: 2018-09-30 20:00:00
Однако для запроса мне нужно преобразовать обратно в метку времени Unix, вызвав функцию datetime timestamp (), например time.timestamp()
Проблема в том, что я пытаюсь использовать функцию timestamp () внутри запроса следующим образом:
SELECT *
FROM 'fh-bigquery.reddit_comments.2018_10'
...
AND (created_utc >= curr_day.timestamp() AND created_utc <= next_day.timestamp())
, однако выдает BadRequest: 400 Функция не найдена.Есть ли способ использовать встроенные функции Python так, как я описал выше?Или нужна какая-то альтернатива?
Пока что все кажется довольно интуитивным, но странно, что я не могу найти много полезной информации по этому вопросу.