我想从数据库中获取数据并与系统时间进行比较

时间:2011-02-14 10:49:28

标签: android sqlite time

我想从数据库中获取数据并与系统时间进行比较。我的Android代码占用系统时间

sTimeFirstPart= DateFormat.getTimeInstance(DateFormat.SHORT).format(new Date());

这将保存当前的系统时间,如何在数据库表中比较这个时间,我的db表看起来像这样

public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE IF NOT EXISTS names3 (_ID INTEGER PRIMARY KEY     AUTOINCREMENT, medicine VARCHAR, dose1 VARCHAR ,dose2 VARCHAR ,dose3 VARCHAR)");

剂量1,剂量2,剂量3是存储在数据库中的时间值。

我希望在什么时间显示下一种药我该怎么办?请帮助我吗?

3 个答案:

答案 0 :(得分:2)

您应该考虑将日期存储为自纪元以来的Millis - System.currentTimeMillis()返回的内容。

然后在表格中添加一列“theTime”,并在那里存储下一个进入日期。

这里比较使用<和>很容易:

SELECT dose FROM names3 WHERE theTime < ?

并将当前时间作为参数传递。

答案 1 :(得分:1)

我不是Android开发者,但在任何平台上将日期作为字符串进行比较都是一个坏主意。为什么不使用Date而不是String? 您可以将Varchar转换为this之类的日期,然后将其与compareTo的当前时间进行比较。

答案 2 :(得分:0)

此示例解决了该问题:

SELECT * FROM my_table WHERE 
  start_date <= date('now','localtime') 
  AND end_date >= date('now','localtime')

Look here用于SQLite中的其他日期函数。