查询今天的数据,或者查询某一天的数据
SQL DATE() function
使我们能够从特定的历史或当前时间戳值访问日期值。
Date()函数返回从传递的datetime表达式中提取的日期。
DATE(datetime expression)
SQL 语句按create_time 获取某一天的数据
select * from mytable where DATE(create_time) == '2022-11-14'
方法一:
最原始的方法是给个开始时间和结束时间,用between
start = datetime.strptime("2022-11-14 00:00:00", "%Y-%m-%d %H:%M:%S")
end = datetime.strptime("2022-11-14 23:59:59", "%Y-%m-%d %H:%M:%S")
res = Students.query.\
filter(Students.create_time.between(start, end))\
.all()
print(res)
方法二:使用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类型
res = Students.query.filter(
db.cast(Students.create_time, db.DATE) == db.cast(datetime.now(), db.DATE)
).all()
print(res)
参考博客https://blog.csdn.net/qq_37289115/article/details/110916838