【问题标题】:SQLAlchemy: How to convert a value of a colum in ORM-classSQLAlchemy:如何在 ORM 类中转换列的值
【发布时间】:2016-09-25 22:21:25
【问题描述】:

我正在使用 SQLAlchemy 从(给定的)SQLite 数据库中读取数据。不幸的是,时间值是字符串,而不是像“Fri Apr 15 15:57:59 2016”这样的 TIMESTAMP

class Test(Base):
    __tablename__ = 'test'
    id = Column('id', String, primary_key=True)
    time = Column('id', String)

有没有办法转换/映射即时,以便 class.time 返回一个 datetime 对象?

【问题讨论】:

    标签: python sqlite orm sqlalchemy


    【解决方案1】:

    我建议在你的模型上添加一个属性:

    from datetime import datetime
    
    class Test(Base):
        __tablename__ = 'test'
        id = Column('id', String, primary_key=True)
        _time = Column('time', String)
    
        @property
        def time(self):
            return datetime.strptime(self._time, '%Y-%m-%d %H:%M')
    

    当然,您必须确保strptime 的格式合适。但这样您就可以调用.time 并获得适当的时间戳。

    【讨论】:

    • @chris.stckhmr 如果您需要能够通过time 列进行查询,您可以考虑改为hybrid properties
    猜你喜欢
    • 2012-04-20
    • 2015-06-14
    • 2012-02-17
    • 2021-03-16
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2019-11-21
    相关资源
    最近更新 更多