我想在SQLite中将DateTime数据存储为julianday吗?

前端之家收集整理的这篇文章主要介绍了我想在SQLite中将DateTime数据存储为julianday吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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扩展来执行所需的功能.这样,除了加载扩展程序之外,您不需要触摸框架.

猜你在找的Sqlite相关文章