Python 我如何在SQLAlchemy中比较datetime的日期?

Python 我如何在SQLAlchemy中比较datetime的日期?,python,datetime,sqlalchemy,flask,flask-sqlalchemy,Python,Datetime,Sqlalchemy,Flask,Flask Sqlalchemy,我在SQLAlchemy中有一个查询: weekly_schedule = WeeklyHour.query.filter( and_( WeeklyHour.start_time.in_(week_dates), WeeklyHour.end_time.in_(week_dates), WeeklyHour.employee == employee ) ).all() 我得到了本周的日期,如下所示: today

我在
SQLAlchemy
中有一个查询:

weekly_schedule = WeeklyHour.query.filter(
    and_(
        WeeklyHour.start_time.in_(week_dates),
        WeeklyHour.end_time.in_(week_dates),
        WeeklyHour.employee == employee
        )
    ).all()
我得到了本周的日期,如下所示:

today = datetime.datetime.today()
week_dates = [today + datetime.timedelta(days=i) for i in xrange(0 - today.weekday(), 7 - today.weekday())]
这将返回
日期时间中当前一周的列表。像这样:

[datetime.date(2014, 4, 7), datetime.date(2014, 4, 8), datetime.date(2014, 4, 9), datetime.date(2014, 4, 10), datetime.date(2014, 4, 11), datetime.date(2014, 4, 12), datetime.date(2014, 4, 13)]
问题在于员工当天开始和结束时的
周时
是一个
日期时间
。和
week\u dates
是设置为
now()
的特定时间。我永远不会得到结果,因为
datetime
time
不匹配。我真正想比较的是
datetime
中的
date
部分。我目前的解决方案(虽然有效,但不起作用)是将
日期时间的
日期
分开存储,而不是查询一周中的所有天数,将天数作为限制

today = date.today()
start_of_week = today - timedelta(days=today.weekday())
start_of_following_week = start_of_week + timedelta(days=7)

weekly_schedule = WeeklyHour.query.filter(
    and_(
        WeeklyHour.start_time >= start_of_week,  # On or after Monday
        WeeklyHour.end_time < start_of_following_week, # Before next Monday
        WeeklyHour.employee == employee
        )
    ).all()
today=date.today()
开始工作周=今天-时间差(天=今天。工作日())
周后开始周=周开始周+时间增量(天=7)
周计划=WeeklyHour.query.filter(
及_(
WeeklyHour.start_time>=每周开始,周一或之后
WeeklyHour.end_time<下周开始,下周一之前
WeeklyHour.employee==员工
)
).all()

您使用什么数据库?实际上,不需要围绕所有这些条件的and()调用,因为这是.query.filter()的默认模式。