Ответ 1
SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)
вычисляющих эти год, месяц, и c, в вашем коде приложения.
У меня есть простая таблица в Google App Engine с полем даты. Я хочу запросить все строки с полем даты, оцененным между настоящим и 6 часами назад. Как мне сформировать этот запрос?
SELECT * FROM simpletable
WHERE datefield < DATETIME(year, month, day, hour, minute, second)
вычисляющих эти год, месяц, и c, в вашем коде приложения.
Я знаю, что вы говорите GQL, но здесь используется вспомогательная функция python:
import datetime
def seconds_ago(time_s):
return datetime.datetime.now() - datetime.timedelta(seconds=time_s)
Там может быть более сжатый способ написать его: я не эксперт по python и пошел с первым, что сработало. Взгляните на документы datetime, если вам все равно. Он используется следующим образом:
my_query = MyTable.all().filter("date >", seconds_ago(6*60*60))
Я уверен, что это может быть переведено в GQL без особого беспокойства, но я предпочитаю объектно-ориентированный интерфейс, и я не знаю необходимого синтаксиса DATETIME.
В python запрос затем используется следующим образом:
# 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