У меня есть sqldb, где дата закодирована в виде строки. С помощью sqlalchemy мне нужно реализовать запрос, где дата используется в качестве фильтра (дата в заданном диапазоне c). Я пытался определить гибридный метод, но кажется, что datetime.strptime не может использоваться здесь ( "TypeError: strptime () аргумент 1 должен быть str, а не InstrumentedAttribute" )
У вас есть идеи (может быть, другой подход, чем гибридный метод), как заставить его работать?
Пример кода:
class Sample(db.Model):
__tablename__ = "sample"
id = db.Column(db.Integer, primary_key=True)
date = db.Column(db.String(32))
@hybrid_property
def date2(self):
return datetime.datetime.strptime(self.date, "%Y-%m-%d")
@date2.expression
def date2(cls):
return datetime.datetime.strptime(cls.date, "%Y-%m-%d")
...
date_min = datetime.datetime(2020, 1, 1)
date_max = datetime.datetime(2020, 3, 31)
out = Sample.query.filter_by(date2 > date_min, date2 < date_max).all()