首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Postgres实现gino中的date.attribute滤波

如何用Postgres实现gino中的date.attribute滤波
EN

Stack Overflow用户
提问于 2022-01-14 20:06:31
回答 1查看 140关注 0票数 0

我试着按月使用吉诺过滤用户

代码语言:javascript
复制
cur_month_users = await User.query.where(User.birth_date.month==12).gino.all()

但这是行不通的,因为:

AttributeError:“列”对象和“比较器”对象都没有属性“月份”

我的带有日期列的简单模型

代码语言:javascript
复制
class User(db.Model):
    __tablename__ = 'users'

    id = db.Column(db.Integer(), primary_key=True)
    discord_id = db.Column(db.Integer())
    user_name = db.Column(db.Unicode())
    birth_date = db.Column(db.Date())

    @property
    def month_and_day(self):
        return self.birth_date.strftime(format="%d.%m")

    def __str__(self):
        return self.user_name

我该如何解决我的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-15 21:00:35

我不知道gino,但是在标准sqlalchemy (和sql)中,您不能直接在查询中获得从日期开始的月份。您应该使用从日期开始提取月份的函数,如date_part

代码语言:javascript
复制
from sqlalchemy import func
cur_month_users = await User.query.where(
    func.date_part('month', User.birth_date) == 12
).gino.all()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70715995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档