фильтр sqlalchemy путем сравнения datetime.now () и столбец дата по умолчанию

в мое определение таблицы, у меня есть столбец, определенный следующим образом:

created_date = Column(DateTime, nullable=False, default=datetime.now)

Я хочу запросить экземпляр, когда его дата создания равна текущей дате (например, если он создан сегодня).

так что я попробовал что-то вроде этого:

res = session.query(Object).filter(datetime.now() == Object.created_date)

Он никогда не работает, потому что сравниваются две даты в секундах, я думаю, поэтому они никогда не будут равны друг другу. тогда я попробовал это:

res = session.query(Object).filter((datetime.now() - Object.created_date).days < 1)

пока (datetime.now() - datetime.now()).days работает в Python, он не работает в моей ситуации здесь. у меня ошибка говорит: объект не 'BinaryExpression объекта', ни 'компаратор' имеет атрибут 'дней'.

Итак, как мне сделать запрос, который фильтрует экземпляры, созданные в текущий день? спасибо!

1 ответов


Я сомневаюсь в том, что (datetime.now() - datetime.now()).days работает с datetime.datetime экземпляр имеет только атрибут с именем day, а не days. Используя datetime.now().days в результате AttributeError: 'datetime.datetime' object has no attribute 'days'

вы можете попробовать это:

from datetime import timedelta

res = session.query(Object).filter(
    (Object.created_date+timedelta(days=1))>datetime.now())