Come interrogare tutte le voci dal passato 6 ore (datetime) in GQL?
-
13-09-2019 - |
Domanda
Ho una semplice tabella in Google App Engine con un campo data. Voglio interrogare tutte le righe con il campo della data valutata tra oggi e 6 ore fa. Come faccio a formo questa ricerca?
Soluzione
SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)
calcolo coloro anno, mese, ecc, nel codice dell'applicazione.
Altri suggerimenti
Lo so che dici GQL, ma ecco una funzione di pitone aiuto io uso:
import datetime
def seconds_ago(time_s):
return datetime.datetime.now() - datetime.timedelta(seconds=time_s)
Ci può anche essere un modo più conciso di scriverlo: Io non sono un esperto di pitone e sono andato con la prima cosa che ha funzionato. Date un'occhiata alla documentazione di data e ora se si cura. E 'usato in questo modo:
my_query = MyTable.all().filter("date >", seconds_ago(6*60*60))
Sono sicuro che può essere tradotto a GQL senza molto fastidio, ma preferisco l'interfaccia orientata agli oggetti, e non so la sintassi DATETIME necessario.
In Python query viene quindi utilizzato in questo modo:
# 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