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

时间:2017-12-18 17:11:57

标签: python sqlite sqlalchemy

我将sqlalchemy连接到一个小瓶子应用程序中的sqllite数据库。

如果我这样做:

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)。我已经尝试将其切换为字符串,但它不起作用。

事实上,使用字符串完成上述工作。

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

1 个答案:

答案 0 :(得分:0)

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

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