flask-sqlalchemy中的日期查询在相等时为空,在ge或le时为非空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask-sqlalchemy中的日期查询在相等时为空,在ge或le时为非空相关的知识,希望对你有一定的参考价值。

我有sqlalchemy连接到一个小烧瓶应用程序中的sqlite数据库。

如果我做:

check = MyTable.query.filter(MyTable.run_dt >= datetime.date(2017,12,14)).all()

然后我收到一个sqlalchemy对象,其中包含run_dt大于或等于2017-12-14的所有行的列表。它包含多行,日期为“2017-12-14”。这就是我所期待的。

如果我做:

check = MyTable.query.filter(MyTable.run_dt == datetime.date(2017,12,14)).all()

我得到一个空集。我无法弄清楚为什么。

run_dt是模型对象中的db.Column(db.Date)。我已经尝试将其切换为字符串,但它不起作用。

实际上,用字符串做上面的工作。

如果这是一个愚蠢的问题,我很抱歉,但我觉得很困惑,并感谢任何人都能给予的任何帮助。

答案

因此,一种解决方案是将日期划分为'%Y-%m-%d%H:%M:%S'格式。这解决了这个问题。

但是,我不明白为什么这个工作,datetime.datetime(2017,12,14,0,0,0)不起作用。

以上是关于flask-sqlalchemy中的日期查询在相等时为空,在ge或le时为非空的主要内容,如果未能解决你的问题,请参考以下文章

将时间戳与查询中的日期名称相等,并在 PostgreSQL 查询中获取结果集 w.r.t 日期名称

Flask 学习-95.Flask-SQLAlchemy 查询今天当天的数据

Python中关于日期相等的GQL查询

在 Flask-SQLAlchemy 模型上使用函数查询会给出 BaseQuery object is not callable 错误

Flask-Sqlalchemy:数据库查询不返回新数据

不区分大小写的数组查询Flask-SQLAlchemy