我想在SQLite中将DateTime数据存储为julianday吗?
发布时间:2020-12-12 19:08:57 所属栏目:百科 来源:网络整理
导读:SQLite文档指定在DB中存储日期时间值的首选格式是使用Julian Day(使用内置函数). 但是,我在python中看到的所有框架(pysqlite,SQLAlchemy)都将datetime.datetime值存储为ISO格式的字符串.他们为什么这样做? 我通常会尝试将框架调整为将日期时间存储为juliand
SQLite文档指定在DB中存储日期时间值的首选格式是使用Julian Day(使用内置函数).
但是,我在python中看到的所有框架(pysqlite,SQLAlchemy)都将datetime.datetime值存储为ISO格式的字符串.他们为什么这样做? 我通常会尝试将框架调整为将日期时间存储为julianday,这非常痛苦.我开始怀疑这是值得的. 请与我分享您在这个领域的经验.坚持julianday有道理吗? 两种方式存储.可以按照自己的方式设置框架,如果您希望找到带有ISO格式字符串的原始列,那么这可能比它的价值更令人痛苦.有两列的问题是数据一致性,但sqlite应该拥有使其工作所需的一切.版本3.3支持检查约束和触发器.阅读date and time functions.您应该能够在数据库中完全满足您的需求. CREATE TABLE Table1 (jd,isotime); CREATE TRIGGER trigger_name_1 AFTER INSERT ON Table1 BEGIN UPDATE Table1 SET jd = julianday(isotime) WHERE rowid = last_insert_rowid(); END; CREATE TRIGGER trigger_name_2 AFTER UPDATE OF isotime ON Table1 BEGIN UPDATE Table1 SET jd = julianday(isotime) WHERE rowid = old.rowid; END; 如果您无法在数据库中执行所需操作,则可以编写C扩展来执行所需的功能.这样,除了加载扩展程序之外,您不需要触摸框架. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |