SQLAlchemy: фильтр по дате и времени в поле JSON - PullRequest
0 голосов
/ 29 сентября 2019

Мне нужно отфильтровать запрос по дате в поле JSON DB (postgres).

E.грамм.для целочисленного сравнения этот синтаксис работает:

r = Customer.query.filter(Customer.jsondata[('basic', 'age')].astext.cast(Integer) > 18).all()

Но как этот запрос работает для даты и времени в формате iso, который должен быть не старше 12 месяцев:

r = Customer.query.filter(Customer.jsondata[('basic', 'dateCreated')].astext.cast(???) > comparison_value).all()

Что мне делатьнужно лить?

Каким может быть значение сравнения?

Является ли моя идея подходящей концепцией вообще?

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 29 сентября 2019

Благодаря комментарию ThiefMaster решение было довольно простым.

Я использовал:

from sqlalchemy.types import DateTime
import pendulum

r = Customer.query.filter(
      Customer.custcontext_json[('basic', 'dateCreated')].astext.cast(DateTime) > pendulum.now('UTC').subtract(months= 12)
      ).all()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...