首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让sqlite3存储tzinfo?

如何让sqlite3存储tzinfo?
EN

Stack Overflow用户
提问于 2019-04-22 17:25:55
回答 1查看 122关注 0票数 1

我正在尝试将tzinfo获取的from tzlocal.getlocalzone()存储到sqlite3表中。

如何让sqlite接受tzinfo类型?

代码语言:javascript
复制
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))")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-22 21:45:57

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

但是SQLite并不禁止您将blob存储到列中。因此,您可以选择tzinfo并将其存储,或者构建您自己的表示形式(即,时区信息字符串)并将其存储。当您从数据库检索时,只需从您的表示中取消选取或重新构建tzinfo即可。

Pickled版本在某些情况下可能没有用处,特别是你想在SQL语句中支持一些计算(例如,与给定时区相差1小时内)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55792160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档