加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

我想在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扩展来执行所需的功能.这样,除了加载扩展程序之外,您不需要触摸框架.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读