首页 > 解决方案 > 使用 Flask-sqlalchemy 过滤今天的日期数据(从 YYYY-MM-DD-HH: MM: SS 格式转换为 YYYY-MM-DD 没有小时、分钟和秒)

问题描述

我正在尝试过滤创建日期等于今天的位置。考虑以下函数:

from sqlalchemy import func
from datetime import date

def attempt_count(user_id):    
    r = db_session.query(RecoveryToken)\
                  .filter(RecoveryToken.user_id == user_id)\
                  .filter(func.date(RecoveryToken.created_at) == date.today()).all()
    number = len(r)
    print('todays records', number)
    return number

模型.py

created_at = Column(DateTime, nullable=True,default=datetime.datetime.now(tz=tz))

我正在尝试过滤创建日期等于今天的位置。我遇到的问题是数据库记录采用这种格式:2021-09-07 20:11:18.000. 在不考虑不同格式的情况下比较这些值的最佳方法是什么。

标签: flasksqlalchemyflask-sqlalchemy

解决方案


尝试 .date() :

.filter(RecoveryToken.created_at.date() == date.today())

.date() 返回 DateTime 字段的日期


推荐阅读