Como consultar todas as entradas passadas 6 horas (data e hora) em GQL?
-
13-09-2019 - |
Pergunta
Eu tenho uma tabela simples no Google App Engine com um campo de data. I deseja consultar todas as linhas com o campo de data valorizado entre hoje e 6 horas atrás. Como faço para formar essa consulta?
Solução
SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)
computação aqueles ano, mês, & c, no código do aplicativo.
Outras dicas
Eu sei que você diz GQL, mas aqui está uma python ajudante uso da função I:
import datetime
def seconds_ago(time_s):
return datetime.datetime.now() - datetime.timedelta(seconds=time_s)
Pode muito bem haver uma maneira mais concisa para escrevê-lo: Eu não sou um especialista em python e foi com a primeira coisa que funcionou. Dê uma olhada nas docs de data e hora, se você se importa. Ele é usado como este:
my_query = MyTable.all().filter("date >", seconds_ago(6*60*60))
Tenho certeza de que pode ser traduzido para GQL sem muito incômodo, mas eu prefiro a interface orientada a objeto, e eu não sei a sintaxe DATETIME necessário.
Em python a consulta é então usado como este:
# get a count
my_query.count()
# get up to 1000 records
my_query.fetch(1000)
# iterate over up to 1000 records
for result in my_query:
# do something with result