参考别人的解决方案:https://blog.csdn.net/arnolan/article/details/84860895
使用SQL CAST函数
这个方案中我直接查询今日的数据,使用cast函数可以获取datetime字段的date部分,激动!
先看CAST函数介绍:CAST (expression AS data_type)
参数说明:
expression:任何有效的SQServer表达式。
AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。
data_type:目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。
用CAST函数进行数据类型转换时,在下列情况下能够被接受:
(1)两个表达式的数据类型完全相同。
(2)两个表达式可隐性转换。
(3)必须显式转换数据类型。
案例:
这里等价于把datetime.datetime.now()的日期部分截取出来做比较,必须都转换成db.DATE类型
# 先导入sql db对象
records = RecordModel.query.filter(db.cast(RecordModel.reporttime, db.DATE) == db.cast(datetime.datetime.now(), db.DATE)).all()
这里的db.DATE 和 db.Date一样