为了账号安全,请及时绑定邮箱和手机立即绑定

如何让 sqlite3 存储 tzinfo?

如何让 sqlite3 存储 tzinfo?

宝慕林4294392 2022-01-18 16:13:32
我正在尝试将tzinfogot存储from tzlocal.getlocalzone()到 sqlite3 表中。如何让 sqlite 接受tzinfo类型?import sqlite3import datetimeimport pytzfrom tzlocal import get_localzonedb = sqlite3.connect("tztestings.sqlite", detect_types=sqlite3.PARSE_DECLTYPES)db.execute("CREATE TABLE IF NOT EXISTS history (time TIMESTAMP NOT NULL, timediff TZINFO NOT NULL,"           " account TEXT NOT NULL, amount INTEGER NOT NULL, PRIMARY KEY (time, account))")
查看完整描述

1 回答

?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

tzinfo在我看来,您想稍后从 SQLite 数据库中取回。所以答案是你不能。

但是 SQLite 并不禁止您将 blob 存储到列中。所以你可以腌制tzinfo并存储它,或者组成你自己的表示(即,一串时区信息)并存储它。当您从数据库中检索时,只需从您的表示中解开或重建 tzinfo。

Pickled 版本在某些情况下可能没有用,尤其是您希望在 SQL 语句中支持某些计算(例如,与给定时区相差 1 小时内)。


查看完整回答
反对 回复 2022-01-18
  • 1 回答
  • 0 关注
  • 186 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号