如何在SQLite for Android rawQuery中获取最接近当前时间的行#

时间:2016-07-16 09:34:04

标签: android sqlite

专家, 我想从列MyColumn获取值,其中列Judge为true,列DateTime最接近当前时间。怎么解决这个问题?感谢。

我开发类似下面的代码似乎工作。但是,当表格仅包含行时,Judge =' false' ,(因为我的其中一个条件是Judge =' true')我得到了:

cursor.moveToFirst()==真

cursor.getCount()== 1

因此将0.0分配给myColumn而不是999999。

 String dateTime="CURRENT_DATE_TIME";
 double myColumn;

 Cursor cursor = db.rawQuery("select MyColumn, " +
                "min(strftime('%s', '" + dateTime + "') - strftime('%s', DateTime)) " +
                "from trade1 " +
                "where Judge = 'true' " +
                "and date(DateTime) <= date('" + dateTime + "')", null);

        cursor.moveToFirst();

        myColumn = cursor.getDouble(0);  

        if (cursor.getCount()==0) myColumn = 999999;


        cursor.close();

1 个答案:

答案 0 :(得分:0)

当您使用MIN()之类的聚合函数而不使用GROUP BY时,您将获得所有行的结果,即使没有。

只需添加GROUP BY Judge

(在检查有效行之前,您不能尝试从光标读取。)