我想查找两个日期之间的所有行,包括结束日期,但只能在结束日期前一天获得包含日期的行。例如,我有这个条目:
{
"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。
答案 0 :(得分:2)
我找到了答案,我在数据库中的日期时间没有在微秒上标准化,因此日期是微秒太大。 现在我用这个重置所有日期:
normalized_date = task_date.replace(hour=0, minute=0, second=0, microsecond=0)
这使问题中的代码工作