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

前言

查询今天的数据,或者查询某一天的数据
SQL DATE() function使我们能够从特定的历史或当前时间戳值访问日期值。

DATE() 函数

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

posted @ 2022-11-14 12:04  上海-悠悠  阅读(418)  评论(0编辑  收藏  举报