SQlite:unix时间戳的列格式;整数类型

原来的问题:
unix时间戳的正确列格式是什么?

网络充满了混乱:一些帖子声称SQLite没有无符号类型 – 无论是什么,或者除了64位int类型(但是有(反)示例调用UNSIGNED INTEGER).数据类型页面仅在一个bigint示例中提到它.它还声称有一个6字节的整数,但没有给它一个名称.看来,我尝试使用INTEGER是4字节签名的存储unix时间戳作为负数.我听说有些系统返回64位时间戳. OTOH我不太喜欢浪费4个字节来存储1个额外的位(时间戳的顶部),即使我必须选择更大的数据格式,我宁愿去6字节.我甚至看到一个声明SQLite unix时间戳的帖子是REAL …

完成问题:
有人可以澄清一下吗?

一个整数的大小

SQLite数据库中的所有列都是内部可变宽度的. file format以1,2,3,4,6或8个字节存储整数,取决于数字大小,标题中加上一个字节来指示大小.因此,总共存储为整数的Unix日期将占用5个字节,直到2038-01-19和7个字节为止.

从C API的用户的角度来看,所有的整数都是64位的.

列类型

您是否将列列为INTEGER,UNSIGNED INTEGER,BIGINT或其他内容无关紧要. Anything with “INT” in it has integer affinity.而且,如上所述,所有整数都是64位的,但通常不是这样存储的.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能