Как запросить все записи за последние 6 часов (дата-время) в GQL?

StackOverflow https://stackoverflow.com/questions/994187

  •  13-09-2019
  •  | 
  •  

Вопрос

У меня есть простая таблица в Google App Engine с полем даты.Я хочу запросить все строки с полем даты, значение которого находится между настоящим моментом и 6 часами назад.Как мне сформировать этот запрос?

Это было полезно?

Решение

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

вычисление этого года, месяца и т. д. в коде вашего приложения.

Другие советы

Я знаю, вы говорите 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top