如果预订属于bookings
的属性,如何在2个日期之间过滤plane
:
planes = Plane.query.all()
plane
有预订背景
plane_id = db.Column(db.Integer, db.ForeignKey('plane.id'))
plane = db.relationship('Plane', backref=db.backref('bookings', lazy='dynamic'))
booking
有一个开始和结束日期时间:
start_date = db.Column(db.DateTime)
end_date = db.Column(db.DateTime)
如何将预订过滤到指定日期,以便飞机仅包含已过滤的预订?
答案 0 :(得分:1)
session.query(Plane).join(Bookings).filter(Bookings.start_date>=start_date, Bookings.end_date<=end_date).all()
答案 1 :(得分:0)
“开始日期”和“结束日期”的类型为datetime.datetime
将它们转换为字符串(就像'2020-06-23 19:40:33'):
*。 start_date = Bookings.start_date.isoformat('','seconds')
*。 end_date = Bookings.end_date.isoformat('','seconds')
获取当前日期为: currenct_date = datetime.datetime.now()。isoformat('','seconds')。
session.query(Plane).join(Bookings) .filter(currenct_date.between(Bookings.start_date,Bookings.end_date).all()