这很简单,但我无法从ALTER TABLE
的SQLite FAQ和插图中找到答案。
我有一个日期专栏,但为了找到时差,我需要使用朱利安日期,所以我觉得我不妨添加朱利安日期专栏,因为我会做很多事情。但我无法弄明白该怎么做。
我经历了一系列迭代,但我认为我没有点击ALTER TABLE
和INSERT INTO
命令的SQLite哲学。谢谢!
答案 0 :(得分:1)
Sqlite中没有DATE或TIME类型。你可以自由选择对你有意义的东西。如果它只是日志记录的时间戳或其他东西,STRING应该没问题。如果您要进行日期时间比较和数学(根据问题),INTEGER将是最好的。
This page讨论内置函数的使用。如果您使用INTEGER存储自纪元以来的秒数,则可以使用减法来查找时差。
答案 1 :(得分:1)
但我不知道如何永久 将列添加到表中 其他列的功能 表。这不常见吗?
您无法在SQLite表中添加计算列。但是你可以使用VIEW
。
CREATE TABLE TableWithDates (
ID INTEGER PRIMARY KEY,
Iso8601 TEXT
);
CREATE VIEW ViewWithDates AS
SELECT ID, Iso8601, JULIANDAY(Iso8601) AS Julian
FROM TableWithDates;
sqlite> INSERT INTO TableWithDates VALUES (1, CURRENT_TIMESTAMP);
sqlite> SELECT * FROM TableWithDates;
1|2010-12-23 21:13:26
sqlite> SELECT * FROM ViewWithDates;
1|2010-12-23 21:13:26|2455554.3843287