Flask-SQLALchemy篩選出日期等於今天的數據

User類:

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(20), unique=True)
    username = db.Column(db.String(30), unique=True)
    password = db.Column(db.String(128))
    create_time = db.Column(db.DateTime, nullable=False, default=datetime.utcnow, index=True)
    

查詢數據:

 users = User.query.filter(db.cast(User.create_time , db.DATE) == db.cast(datetime.datetime.utcnow(), db.DATE)).all()

因爲對sqlalchemy不是太瞭解,就在網上找了上面的篩選方法,但是還是沒法過濾掉除今天以外的數據。這個真的頭大,於是又找了其他方法:

import datetime
from sqlalchemy import extract


today = datetime.datetime.utcnow()
users= User.query.filter(extract('year', User.create_time) == today.year,
                                   extract('month', User.create_time) == today.month,
                                   extract('day', User.create_time) == today.day).all()

完美解決。不知道是不是因爲數據庫的原因,我用的sqlite3,下面的方法可以,上面的不行,下次再用mysql試一下,先記錄一下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章