我正在尝试将tzinfo
gotfrom tzlocal.getlocalzone()
存储到sqlite3表中。你知道吗
如何使sqlite接受tzinfo
类型?你知道吗
import sqlite3
import datetime
import pytz
from tzlocal import get_localzone
db = 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))")
在我看来,您希望稍后从SQLite数据库中获取
tzinfo
。所以答案是你不能。你知道吗但是SQLite并不禁止将blob存储到列中。因此,您可以对
tzinfo
进行pickle处理并存储它,或者创建自己的表示(即,一个时区信息字符串)并存储它。从数据库检索时,只需从表示中取消拾取或重建tzinfo。你知道吗Pickled版本在某些情况下可能没有用处,特别是您希望在SQL语句中支持某些计算(例如,与给定时区相差1小时以内)。你知道吗
相关问题 更多 >
编程相关推荐