我想将用户输入时间与我的sqlite表时间列比较 用户输入时间存储在哪里 hour_x,分钟x
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
hour_x = hourOfDay;
minute_x = minute;
settime.setText(hour_x+":"+minute_x);
}
我在表中有很多时间列,如
hellodb4.execSQL("create table " + TABLE_NAME +" (STATION TEXT,TIME TIME,TIME TIME,TIME TIME)");
hellodb4.execSQL("INSERT INTO time_table VALUES ('STN1','03:35','03:55','03:57');");
hellodb4.execSQL("INSERT INTO time_table VALUES ('STN2','06:30','06:55','06:57');");
SO 我希望比较用户选择任何时间,然后它应该与All' TIME'列为user_input time> =' TIME'列。
答案 0 :(得分:0)
String yourDate = "03:44";
您可以做的是创建日期格式化程序:
SimpleDateFormatter f = new SimpleDateFormatter("HH:mm");
比创建日期对象:
Date d = f.parse(yourDate);
对新日期对象中从SQLite表中获取的日期做同样的事情:
Date d2 = f.parse(dateFromTable);
现在只需
比较日期d.compareTo(d2)
答案 1 :(得分:0)
首先,您的表中有一些奇怪的内容,因为您似乎声明了几个名为' TIME'的列。这有用吗?
hellodb4.execSQL("create table " + TABLE_NAME +" (STATION TEXT,TIME TIME,TIME TIME,TIME TIME)");
无论如何,如果我理解你的问题,你可能想在SQL查询中进行日期比较,对吧?您可以在SQLite中使用日期/时间函数:
https://www.sqlite.org/lang_datefunc.html
像这样的查询:
String query = "SELECT * FROM time_table WHERE strftime(TIME, 'HH:MM') > ?";
SimpleDateFormat f = new SimpleDateFormat("HH:mm");
String[] params = String[] { f.format(dateFromUser) };
db.rawQuery(query, params);
我没有测试上面的代码,因此您可能需要修改它才能正常工作。