可以将时间存储在 SQLite 数据库中吗?

Possible to store time in SQLite database?

问题:我正在制作一个抽认卡应用程序,当用户点击“简单”时,例如,我想增加卡片的时间,然后卡片不会出现直到时间到达0.

例如“卡片 1”默认时间为 0,用户点击“我知道按钮”,该卡片上的时间增加到 5 分钟(5:00),然后该卡片不会再次出现 5 分钟,直到计时器回到 0 , 这可以吗?

is this possible to do?

我相信,如果您考虑 SQLite 的功能以及 Android 应用程序的功能,那么 。但是单独使用 SQLite 然后 No.

通常,为了获得结果,数据库中的时间将保持不变,但您将提取并因此仅显示符合条件的行,例如存储的时间小于或等于当前时间。

单击“我知道”会更新相应的行并将值设置为当前时间加 5 分钟,因此可能基于计时器的摘录将不会显示相应的行,因为它大于当前时间.

至于定时器 SQLite 没有内置定时器。它是一个数据库管理器,其工作是存储和检索结构化数据。

作为一个例子考虑下面的原理:-

DROP TABLE IF EXISTS flashcard;
CREATE TABLE IF NOT EXISTS flashcard (cardtitle TEXT, cardtimer INTEGER);

INSERT INTO flashcard VALUES ('Card1',strftime('%s','now')),('Card2',strftime('%s','now','+1 minute')),
    ('Card3',strftime('%s','now','+2 minute'));

SELECT *,strftime('%s','now') FROM flashcard WHERE cardtimer <= strftime('%s','now');
UPDATE flashcard SET cardtimer = strftime('%s','now','+5 minutes') WHERE cardtitle = 'Card1';
SELECT *,strftime('%s','now') FROM flashcard WHERE cardtimer <= strftime('%s','now');

这个:-

  1. 删除并创建一个包含 2 列的 table,
    1. 一个名为 cardtitle 的列,用于存储卡片的标题
    2. 一个名为 cardtimer 的列,表示卡片可以在
    3. 或之后显示的时间
  2. 添加 3 行具有唯一标题的时间,第一行的时间是当前时间,第二行的时间是一分钟后的时间,第三行的时间是一分钟后的时间。
  3. 一个提取(SELECT 查询)只显示计时器现在或更早的行(不管它是什么时候 运行)。
    1. 这仅显示 3 行中的第一行,其他行在未来显示
  4. 将第一行的时间更改为距现在 5 分钟的更新
  5. 使用与 3 相同的查询的另一个提取
    1. 这没有显示任何内容,因为现在所有 3 行都在未来

运行 以上结果为:-

  • 即只提取了 Card1

然后:-

即所有的卡片现在都在未来。

但是,如果相同的提取物在 运行 一段时间后(但很快就会在 5 分钟后),正如在大约 139 秒后可以看到的那样,那么 :-

如果 5 分钟后相同的提取物是 运行 那么 :-