簡體   English   中英

Flask SQLAlchemy 之間查詢返回空列表

[英]Flask SQLAlchemy between query return empty list

我剛開始使用 Flask SQLAlchemy 並查看此處查看我應該如何在兩者之間進行查詢所以我發現了這個

但是我遇到的問題是它在執行時返回以下內容:

SELECT records.id AS records_id, records.created_at AS records_created_at, records.file_type AS records_file_type, records.path_filename AS records_path_filename 
FROM records 
WHERE records.created_at BETWEEN ? AND ?

代碼:

today_date = datetime.today().strftime("%d/%m/%Y")
week = (datetime.today() - timedelta(days=7)).strftime("%d/%m/%Y")
month = (datetime.today() - timedelta(days=30)).strftime("%d/%m/%Y")

last_30_days = db.session.query(Records).filter(Records.created_at.between(month, today_date))

當我在 last_30_days 表達式的末尾添加.all()時,它會返回一個空列表。

我還想提一下,當我使用相同的表達式查詢星期時,today_date 會得到所有結果。

這是表格的樣子:

class Records(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    created_at = (db.Column(db.String(20), nullable=False))
    file_type = (db.Column(db.String(100), nullable=False))
    path_filename = db.Column(db.String(120), unique=True, nullable=False)

有人可以向我解釋發生了什么嗎? 謝謝!

您的示例不使用 SQLAlchemy 附帶的DateDateTime列數據類型。 您依賴於字符串的字典順序,但要使其正常工作,日期/時間戳需要按照 ISO 8601 的行進行存儲,例如YYYY-MM-DD

要么更改您正在使用的字符串格式,要么更改 select 適當的列類型,而不僅僅是String

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM