Как вычесть n дней из заданной даты в питоне - PullRequest
0 голосов
/ 09 января 2012

Я реализовал базу данных следующим образом

from google.appengine.ext import db
from google.appengine.ext import blobstore

class Medicine:
 id =  db.IntegerProperty(required=True)
 exp_date = db.DateProperty()

, а у менеджера организации я хочу получить все лекарства, срок годности которых истекает - 20

MedicineEntity:
 def get_medicines(self):
 query = db.GqlQuery("SELECT * FROM Medicine WHERE exp_date=:1", exp_date -20 )

Я знаю, что мой запрос неправильный. Есть ли способ получить разницу, как sql в Gql. Может ли кто-нибудь помочь?

1 Ответ

6 голосов
/ 09 января 2012

Стандартный способ сделать это в Python - использовать timedelta.

Например:

from datetime import datetime, timedelta
now = datetime.now()
delta = timedelta(days=20)

then = now - delta

Таким образом, 1 вариант - преобразовать exp_date в datetime, вычесть timedelta и затем преобразоватьвернемся к дате собственности.

Я не использовал appengine, поэтому я не знаю, насколько это будет сложно.

edit : некоторые поиски показывают, что DateProperty на самом деле сохраняет значение какобъект datetime, поэтому он должен быть таким простым, как

query = db.GqlQuery("SELECT * FROM Medicine WHERE exp_date=:1", exp_date - timedelta(days=20) )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...