想要将用户输入时间与我在android中的sqlite表时间列进行比较

时间:2015-07-13 04:41:15

标签: android sqlite

我想将用户输入时间与我的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'列。

2 个答案:

答案 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);

我没有测试上面的代码,因此您可能需要修改它才能正常工作。