Манипуляции с датами в хранилище данных - PullRequest
0 голосов
/ 20 февраля 2010

Я недавно играл с Google AppEngine и, похоже, застрял. Я пытаюсь создать запрос, который выбирает сообщения, которые были до определенной даты (в данном случае, дата сейчас - 1 день). Я пробовал несколько разных методов для достижения этой цели, но ни один из них не сработал. Одна из них заключалась в преобразовании всех дат во время UNIX и выполнении запроса, подобного этому:

db.GqlQuery("SELECT __key__ FROM Post WHERE date-84600 < %s LIMIT 10, ORDER BY date DESC" % time.time())

Но после этого я получил синтаксическую ошибку, из-за которой у меня в GQL не было поддержки операций, таких как вычитание в запросах.

Кто-нибудь знает, как мне это сделать?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 20 февраля 2010

Вам нужно переместить математику за пределы запроса:

db.GqlQuery("SELECT __key__ FROM Post WHERE date < :1 LIMIT 10, ORDER BY date DESC", (time.time() - 84600))
1 голос
/ 20 февраля 2010

Что произойдет, если вы создадите запрос с использованием методов ?

query = Post.all()
query.filter('date < ', datetime.datetime - 84600)
results = query.fetch(limit=10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...