Datastore GQL с функциями Datetime - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть вид хранилища данных Google Cloud со свойством DataTime.Это свойство относится к типу DateTime.

Я хочу создать оператор GQL, который вернет все строки за два дня.Например:

SELECT * FROM `Tracing-V1` WHERE StartTime < DATE_ADD(CURRENT_TIMESTAMP(), INTERVAL -2 DAY); 

Я нашел здесь функцию CURRENT_TIMESTAMP () and DATE_ADD`.К сожалению, GQL не распознает эти функции.

enter image description here

Я получаю сообщение об ошибке:

GQL Query error: Unknown function "DATE_ADD".

Кто-нибудь знает почему?Как мне это реализовать?

1 Ответ

1 голос
/ 19 сентября 2019

Согласно справочнику GQL облачное хранилище данных GQL поддерживает только функции DATETIME и KEY, функции которых описаны в разделе Синтетические литералы .

В качестве альтернативыВы можете сделать это программно с любым поддерживаемым языком программирования .Вот пример того, как это будет выглядеть в python:

from datetime import datetime, timedelta
from google.cloud import datastore

client = datastore.Client()
now = datetime.now()
now = now.replace(hour=0, minute=0, second=0, microsecond=0)

the_day_before = now - timedelta(days=2)
query = client.query(kind='Test')

query.add_filter('date', '>', the_day_before)
result = list(query.fetch())
print(result)
...