Question

J'ai une table simple dans Google App Engine avec un champ de date. Je veux interroger toutes les lignes avec le champ de date d'une valeur entre maintenant et il y a 6 heures. Comment puis-je forme cette requête?

Était-ce utile?

La solution

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

calcul de ces années, mois, etc., dans votre code d'application.

Autres conseils

Je sais que vous dites GQL, mais voici une fonction d'aide de python J'utilise:

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

Il peut y avoir une façon plus concise de l'écrire: Je ne suis pas un expert en python et je suis allé avec la première chose qui a fonctionné. Jetez un oeil à la documentation datetime si vous vous souciez. Il est utilisé comme ceci:

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

Je suis sûr que l'on peut traduire à gql sans embêtait, mais je préfère l'interface orientée objet, et je ne connais pas la syntaxe DATETIME nécessaire.

En python la requête est alors utilisée comme ceci:

# 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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top