【问题标题】:In SQLAlchemy, how do I create a 'MySQL date' column?在 SQLAlchemy 中,如何创建“MySQL 日期”列?
【发布时间】:2012-01-06 19:35:26
【问题描述】:
class Posts(Base):
    __tablename__ = 'posts_posts'
    id = Column(Integer, primary_key = True)
    user_id = Column(Integer, nullable=False)
    body = Column(Text, nullable=True)

    created_at = Column(Date) << is this right?
    updated_at = Column(Date) ??

我还希望created_at 列自动设置创建日期。 此外,updated_at 列用于在此行更改时设置日期。

【问题讨论】:

    标签: mysql database date orm sqlalchemy


    【解决方案1】:

    您可以向Column提供defaultonupdate参数:

    def _get_date():
        return datetime.datetime.now()
    
    class Posts(Base):
        #...
        created_at = Column(Date, default=_get_date)
        updated_at = Column(Date, onupdate=_get_date)
    

    有关此文档的更多信息,请参阅Column 文档。

    【讨论】:

    • 还有更简单的方法:updated_at = Column(Date, onupdate=datetime.datetime.now)
    • 关于如何在 SQL Alchemy 上下文中使 datetime.datetime.now() 时区感知的任何提示?
    • @MikkoOhtamaa: sqlalchemy.types.Datetime 接受参数timezone,默认值为False
    猜你喜欢
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    • 2016-09-12
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    相关资源
    最近更新 更多