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?

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top