Android使用日期和SQLite

时间:2015-03-13 14:55:04

标签: android android-fragments android-sqlite android-calendar

我正在尝试创建一个简单的提醒应用。我只是在逻辑上思考这个过程。基本上我希望能够选择一天和时间,例如星期一15:00,这将在每个星期一15:00触发,直到它从数据库中删除。说完这个例子后,我有问题要完成这个过程。

我如何存储DAY和TIME,什么类型,我需要在表格中使用不同的列? 如何将实时DAY与当前DAY进行比较,如果是星期一实时,它将仅返回星期一提醒?这有可能吗?

我是否需要主要使用日历?

2 个答案:

答案 0 :(得分:0)

正如documentation所说:

  

SQLite没有为存储日期留出的存储类   和/或时间。相反,SQLite的内置日期和时间函数能够将日期和时间存储为TEXT,REAL或INTEGER值。

您可以按以下格式在TEXT字段类型中存储日期和时间:

YYYY-MM-DD HH:MM:SS.SSS

然后使用SQLite的内置date & time functions来过滤您的记录。

另一种选择是存储日期&时间作为时间戳(以毫秒为单位)并写入适当的查询以选择数据或使用Joda库进行过滤或日期&时间转换,但可能这样的解决方案效率会低于第一个选项。

答案 1 :(得分:0)

使用整数列是最简单的解决方案。

只需以毫秒(Calendar.getTimeInMillis())存储日期即可。

然后您只需搜索该整数即可在数据库中找到正确的事件:

String selectQuery = "SELECT whateveryouneed FROM events WHERE date_event > ?";
Cursor c = db.rawQuery(selectQuery, new String[] { String.valueOf(calendar.getTimeInMillis())});
...

如果您需要查找一天中的所有活动,您只需要找到当天的限制(以毫秒为单位)并根据这些限制进行查询