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

前端之家收集整理的这篇文章主要介绍了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位的,但通常不是这样存储的.

原文链接:https://www.f2er.com/sqlite/197573.html

猜你在找的Sqlite相关文章