【发布时间】:2021-01-06 14:05:38
【问题描述】:
我一直在尝试比较提供给 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() 得到了一个意外的关键字参数“已删除”
任何指针将不胜感激。
--
编辑:我注意到我使用的是import time,这可能导致了错误。但是,将其更改为from time import strptime后,我现在遇到了错误:
NameError:未定义全局名称“时间”
【问题讨论】:
-
试试这个?
Idea.query.filter(Idea.time >= start, Idea.time <= end).all() -
@AlexanderChen 这给出了错误“StatementError:SQLite DateTime 类型只接受 Python 日期时间和日期对象作为输入。(原始原因:TypeError:SQLite 日期时间类型只接受 Python 日期时间和日期对象作为输入。) u'SELECT idea.id AS idea_id, idea.user_id AS idea_user_id,idea.title AS idea_title,idea.edited ASidea_edited,idea.time ASidea_time,idea.post ASidea_post,idea.category ASidea_category,idea.deleted ASidea_deleted , idea.votes AS idea_votes \nFROM idea \nWHERE idea.time >= ? AND idea.time
-
好的,现在试试这个:
from datetime import datetime和datetime.strptime(start, "%d%m%y")用于开始和结束(以及以上)。 -
@AlexanderChen 解决了,谢谢!
标签: python flask flask-sqlalchemy