我正在尝试将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 小时内)。
添加回答
举报
0/150
提交
取消