什么是SQL中的realdate?

我有一些SQLite数据库,其中一列的数据类型为realdate,列的值为2453137.5

有人可以对此发表评论吗?

我们将不胜感激:)

prince1594 回答:什么是SQL中的realdate?

来自SQLlite Docs

  

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

Check demo here

,

SQLite的强大功能之一就是允许您选择存储类型。
Real数字有2个优点:

  • 关于分数秒的高精度
  • 最长的时间范围

我从名为Zso的用户那里得到了这个答案。
这是原始帖子How do DATETIME values work in SQLite?的链接。

希望这可以帮助您更好地理解。

本文链接:https://www.f2er.com/3161841.html

大家都在问