SQLAlchemy在两个日期之间查找行,包括给定的结束日期

时间:2016-01-10 18:21:22

标签: python date sqlalchemy

我想查找两个日期之间的所有行,包括结束日期,但只能在结束日期前一天获得包含日期的行。例如,我有这个条目:

{
  "id": 11,
  "taskDate": "Sat, 02 Jan 2016 00:00:00 GMT"
}

我有这个python SQLAlchemy代码

tasks = Task.query\
        .filter(Task.task_date >= start_date)\
        .filter(Task.task_date <= end_date)\
        .all()

如果我从日期&#39; 2016-01-02&#39;创建end_date不返回上面的行。但是,如果我使用日期&#39; 2016-01-03&#39;它被退回。

对我来说它应该有用,因为我使用task_date <= end_date并且应该包含给定的日期,但它不是=( 我想我可以在所有给出结束日期添加一天,但这似乎是错误的。

我错过了什么吗?如果我将开始日期设置为特定日期,那就是我给出的日期。

在我的用例中,我只对日期感兴趣,时间(小时,分钟,秒)无关紧要。我只想要两个日期之间的条目。数据库中的所有行都具有标准化时间00:00:00。

1 个答案:

答案 0 :(得分:2)

我找到了答案,我在数据库中的日期时间没有在微秒上标准化,因此日期是微秒太大。 现在我用这个重置所有日期:

normalized_date = task_date.replace(hour=0, minute=0, second=0, microsecond=0)

这使问题中的代码工作