фильтр 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())