我有一些SQLite数据库,其中一列的数据类型为realdate,列的值为2453137.5
有人可以对此发表评论吗?
我们将不胜感激:)
SQLite没有预留存储类来存储日期和/或时间。相反,SQLite内置的日期和时间功能可以将日期和时间存储为TEXT,REAL或INTEGER值:
TEXT 作为ISO8601字符串(“ YYYY-MM-DD HH:MM:SS.SSS”)。
REAL 作为儒略日数,是公元前4714年11月24日格林威治中午以来的天数。根据阳历。
INTEGER 作为Unix时间,是自1970-01-01 00:00:00 UTC以来的秒数。 应用程序可以选择以任何一种格式存储日期和时间,并使用内置的日期和时间功能在格式之间自由转换。
在您的示例中,您使用REAL
数据类型存储日期。它将提供难以理解的输出。
例如,如果我要存储当前日期和时间
CREATE TABLE
IF NOT EXISTS DATEREAL (d1 real);
INSERT INTO DATEREAL (d1)
VALUES(julianday('now'));
SELECT * from DATEREAL;
Output : 2458792.7882345
您可以使用内置的date()
和time()
来阅读此内容,如下所示
SELECT
date(d1),time(d1)
FROM
datereal;
输出:
date(d1) time(d1)
2019-11-05 06:55:03
,
SQLite的强大功能之一就是允许您选择存储类型。Real
数字有2个优点:
我从名为Zso的用户那里得到了这个答案。
这是原始帖子How do DATETIME values work in SQLite?的链接。
希望这可以帮助您更好地理解。