这很容易,但我无法从SQLite常见问题和ALTER TABLE
的小插图中找到它。将julian日期列添加到SQLite表
我有一个日期列,但要找到一个时间差,我需要使用朱利安日期,所以我觉得我不妨添加一个朱利安日期列,因为我会做很多。但我无法弄清楚如何去做。
我已经经历了一堆迭代,但我不认为我点击了ALTER TABLE
和INSERT INTO
命令的SQLite原理。谢谢!
这很容易,但我无法从SQLite常见问题和ALTER TABLE
的小插图中找到它。将julian日期列添加到SQLite表
我有一个日期列,但要找到一个时间差,我需要使用朱利安日期,所以我觉得我不妨添加一个朱利安日期列,因为我会做很多。但我无法弄清楚如何去做。
我已经经历了一堆迭代,但我不认为我点击了ALTER TABLE
和INSERT INTO
命令的SQLite原理。谢谢!
但我不知道如何永久 一列添加到表是在 表中的其他列的 功能。这不是常见的用法吗?
您无法在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
Sqlite中没有DATE或TIME类型。你可以自由选择对你有意义的事情。如果只是记录日志的时间戳,STRING应该没问题。如果你打算做日期时间比较和数学(你根据问题),INTEGER会是最好的。
This page讨论使用的内置函数。如果您使用INTEGER存储时间以来的秒数,则可以使用减法来查找时间差。
我很满意SQLite中的日期和时间函数。我的书解释得很好。但是我不知道如何永久性地将一列添加到表中,该表是该表中其他列的函数。这不是常见的用法吗? – 2010-12-23 20:15:33
谢谢!我在书中看到了VIEW,但没有意识到这是唯一的选择(添加一列看起来很基本)。这是可扩展的吗?我有400万行。应该通过添加表,放下桌面环?这看起来像是36列的麻烦。 – 2010-12-23 21:21:33