我想从数据库中获取数据并与系统时间进行比较。我的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是存储在数据库中的时间值。
我希望在什么时间显示下一种药我该怎么办?请帮助我吗?
答案 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中的其他日期函数。