0

我想比较两个时间str,例如:2014-06-24和2013-06-25。它们都用“yyyy-MM-dd”格式化。在 sqlite3 中,我可以使用以下命令来达到我的目的:“select julianday('2014-06-25') - julianday('2013-06-25')”,它返回 365。

但是当我在android中使用它时,我无法从光标中获取值。这是我的代码:

Cursor timeCursor = mDbHelper.rawQuery("select julianday('2014-06-25') -julianday('2013-     06-25')",null);
if (timeCursor.getCount() > 0 && timeCursor.moveToFirst()) {
    int time = timeCursor.getInt(timeCursor.getColumnIndex("julianday('2014-06-25') -   
    julianday('2013-06-25')"));
}

但是时间是 0。所以这是我的问题:我怎样才能从光标中获得正确的值,或者有更好的方法来获得它?

4

1 回答 1

0

您必须准确拼写列名,这相当困难。更好地使用列别名:

db.rawQuery("SELECT ... AS d");
cursor.getInt(cursor.getColumnIndex("d"));

但是,您知道只有一列,因此您可以只使用它的索引:

cursor.getInt(0);
于 2013-06-25T07:55:26.527 回答