我一直在尝试比较给SQLALchemy的查询中的日期,如下所示:
start = time.strptime(start, "%d%m%y")
end = time.strptime(end, "%d%m%y")
list_ideas = Idea.query.filter(time >= start, time <= end).all()
但是,无论给定的日期(Idea.time = db.Column(db.DateTime, default=db.func.now())
),这都不会返回结果。我已经搜索了关于这个主题的其他一些答案,从我收集的内容中,我没有犯同样的错误。
此外,将查询更改为Idea.query.filter(time >= start, time <= end, deleted=False).all()
会出现错误:
TypeError:filter()获得了意外的关键字参数&#39;已删除&#39;
任何指针都会受到赞赏。
-
编辑:我注意到我使用import time
,这可能导致错误。但是,在将其更改为from time import strptime
后,我现在遇到错误:
NameError:全球名称&#39; time&#39;未定义
答案 0 :(得分:3)
尝试使用datetime模块
from datetime import datetime
Idea.query.filter(Idea.time >= datetime.strptime(start, '%Y-%m-%d'),
Idea.time <= datetime.strptime(end, '%Y-%m-%d')).all()
您只需要更改模式以匹配您使用的格式
答案 1 :(得分:0)
尝试使用 func.DATE() 函数:
from sqlalchemy import func
start = time.strptime(start, "%d%m%y")
end = time.strptime(end, "%d%m%y")
list_ideas = Idea.query.filter(func.DATE(time) >= start, func.DATE(time) <= end).all()
参考类似的issue。