android sqlite3:如何从游标中获取julianday函数的值?

时间:2013-06-25 07:03:31

标签: android sqlite

我想比较两个时间段,例如:2014-06-24和2013-06-25。它们都是用“yyyy-MM-dd”格式化的。在sqlite3中,我可以通过以下方式获得我的目的:“选择julianday('2014-06-25') - julianday('2013-06-25')”,返回365.

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

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。 所以这是我的问题:如何从光标中获取正确的值或者有更好的方法来获取它?

1 个答案:

答案 0 :(得分:0)

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

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

但是,知道只有一列,所以你可以只使用它的索引:

cursor.getInt(0);