Frage

Ich habe eine einfache Tabelle in Google App Engine mit einem Datumsfeld. Ich möchte alle Zeilen mit dem Datumsfeld abzufragen geschätzt zwischen jetzt und 6 Stunden. Wie kann ich diese Abfrage bilden?

War es hilfreich?

Lösung

SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)

Berechnung diejenigen Jahr, Monat, usw, im Anwendungscode.

Andere Tipps

Ich weiß, Sie sagen GQL, aber hier ist eine Python-Hilfsfunktion verwende ich:

import datetime
def seconds_ago(time_s):
    return datetime.datetime.now() - datetime.timedelta(seconds=time_s)

Es kann auch eine prägnante Art und Weise, es zu schreiben: Ich bin nicht ein Python-Experte und ging mit der ersten Sache, die funktionierte. Werfen Sie einen Blick auf die Datetime-Dokumentation, wenn Sie sich interessieren. Es wird wie folgt verwendet:

my_query = MyTable.all().filter("date >", seconds_ago(6*60*60))

Ich bin sicher, dass übersetzt werden kann, um GQL ohne viel Mühe, aber ich ziehe die objektorientierte Schnittstelle, und ich weiß nicht, die notwendige DATETIME- Syntax.

In Python die Abfrage wird dann wie folgt verwendet:

# 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top