You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SQLAlchemy与SQLite时,db.Time类型支持存储哪些格式的数据?

db.Time 类型支持的存储格式
  • 该类型对应SQL标准的TIME时刻类型,设计初衷是存储单日的时间点,支持的合法取值范围为 00:00:00 ~ 23:59:59.999999
  • 写入时可以直接传入Python的datetime.time对象,也可以传入符合HH:MM:SS格式的字符串,SQLAlchemy会自动完成类型转换
  • 注意该类型不适合存储时长数据:最多只能存储小于24小时的时长,超出1天的时长会直接触发类型错误,且用时刻类型存储时长语义混淆,后续维护极易出现理解偏差。
时长存储的推荐方案

针对你需要存储学习时长的场景,推荐两种更合理的实现方式:

  • 整数存储(最简易)
    以固定单位(比如分钟、秒)用db.Integer存储数值,例如10分钟直接存整数10,后续需要展示时再自行格式化为可读性更高的字符串即可,读写、统计计算都没有额外适配成本。
    示例代码:
    # 单位设置为分钟,按需调整即可
    duration = db.Column(db.Integer, nullable=False, comment="学习时长,单位:分钟")
    
  • 原生间隔类型(语义最清晰)
    SQLAlchemy提供了专门用于存储时间间隔的db.Interval类型,支持直接传入Python的datetime.timedelta对象写入,SQLite底层会自动转为微秒级整数存储,读取时自动转回timedelta对象,不需要自行做单位转换。
    示例代码:
    from datetime import timedelta
    
    # 模型字段定义
    duration = db.Column(db.Interval, nullable=False, comment="学习时长")
    
    # 写入10分钟时长示例
    new_record = YourModel(duration=timedelta(minutes=10))
    db.session.add(new_record)
    db.session.commit()
    

内容的提问来源于stack exchange,提问作者user7329024

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 06:36:03