Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用游标从数据库检索单个值的语法_Android_Sqlite_Android Sqlite_Android Cursor - Fatal编程技术网

Android 使用游标从数据库检索单个值的语法

Android 使用游标从数据库检索单个值的语法,android,sqlite,android-sqlite,android-cursor,Android,Sqlite,Android Sqlite,Android Cursor,我需要得到一列durms(整数)的ave,它以毫秒为单位存储秒数。 我试图通过将值直接赋给一个长变量来实现这一点。 这是正确的吗? 我检查了log.d(dur,cursor.getLong(0)) 它总是给出一个0。 我签入了DB,列durms中有值 请帮我:)代码如下 public String getAve(String s) { SQLiteDatabase db = getWritableDatabase(); String query = "select avg(dur

我需要得到一列durms(整数)的ave,它以毫秒为单位存储秒数。 我试图通过将值直接赋给一个长变量来实现这一点。 这是正确的吗? 我检查了log.d(dur,cursor.getLong(0))

它总是给出一个0。 我签入了DB,列durms中有值

请帮我:)代码如下

public String getAve(String s) {
    SQLiteDatabase db = getWritableDatabase();
    String query = "select avg(durms) from logs where type ='" +s+ "'";
    Cursor cursor = db.rawQuery(query, null);
    String dur = null;
    if(cursor.moveToFirst()){
    Log.d(dur, String.valueOf(cursor.getLong(0)));
    long ss = cursor.getLong(0) / 1000 % 60;
    long mm = cursor.getLong(0) / (1000 * 60) % 60;
    long hh = cursor.getLong(0) / (1000 * 60 * 60) % 60;
    if (hh > 0)
        dur = hh + "h " + mm + "m " + ss + "s ";
    else if (mm > 0)
        dur = mm + "m " + ss + "s ";
    else
        dur = ss + "s ";

    }
    return dur;

}
另外,请告诉从数据库中检索值以进行操作的最短方法

谢谢,
Karthick。

很可能
中的
与任何内容都不匹配,0值的平均值为null,在解释为long时转换为0。很好,先生:)我发现类型值卡在数据流步骤中:)