2个日期之间的列的SQLAlchemy总和

SQLAlchemy sum of a column between 2 dates

我不确定这是否可行,但我正在寻找一种在列上使用 SQLAlchemy func.sum 的方法,但仅适用于 2 个日期之间的行。

为了更清楚,这是模型:

class Income(db.Model):
    __tablename__='incomes'
    id = db.Column(db.Integer, primary_key=True)
    date = db.Column(db.DateTime)
    amount = db.Column(Numeric)
    user_ = db.Column(db.Integer, db.ForeignKey('users.id'))

所以我想计算 amount 列的总和,但仅计算 date 列中日期 x 和日期 y 之间的金额。

是否可以查询,或者我应该更好地查询整个 table 然后在 python 中处理数据?

start_date, end_date = date(2014, 2, 1), date(2014, 3, 31)

q = (db.session.query(
    db.func.sum(Income.amount).label("total_amount"),)

    # @note: any of the three below should do the job:

    .filter(Income.date >= start_date).filter(Income.date <= end_date)
    # .filter(Income.date.between(start_date, end_date))
    # .filter(between(Income.date, start_date, end_date))  # first do: from sqlalchemy.sql.expression import between

)