gpt4 book ai didi

python - 使用 Flask SQLAlchemy SELECT DISTINCT YEAR()

转载 作者:行者123 更新时间:2023-12-01 00:39:59 25 4
gpt4 key购买 nike

如果我有这样的 Flask 模型:

class Report(db.Model):
id = db.Column(db.Integer, primary_key=True)
user_id = db.Column(db.Integer, db.ForeignKey(User.id), nullable=False)
date = db.Column(db.Date, nullable=False)

我想获取一个用户的不同年份的报告列表。所以如果数据是这样的:

user_id |   date
--------------------
1 | 2019-08-01
1 | 2019-07-01
1 | 2018-11-01
1 | 2017-11-01
2 | 2019-11-01
2 | 2016-11-01

然后我想获取用户 1 的[2017, 2018, 2019],类似于 SQL 中的内容:

SELECT DISTINCT YEAR(date) AS year
FROM report
WHERE user_id = 1
ORDER BY year ASC

但我不知道如何使用 Flask 和 SQLAlchemy 来做到这一点。

最佳答案

您可以尝试以下方法:

query = session.query(extract('year', Report.date).label('year'))\
.filter(Report.user_id == 1).distinct().order_by(asc('year'))

这应该解决:

SELECT DISTINCT CAST(STRFTIME('%Y', report.date) AS INTEGER) AS year
FROM report
WHERE report.user_id = 1 ORDER BY year ASC

随着进口

from sqlalchemy import extract, asc

关于python - 使用 Flask SQLAlchemy SELECT DISTINCT YEAR(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57428839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com