0

たとえば、2014-06-24 と 2013-06-25 の 2 つの時刻 str と比較したいのですが、これらはすべて「yyyy-MM-dd」でフォーマットされています。sqlite3 では、"select julianday('2014-06-25') - julianday('2013-06-25')" を使用して目的を達成できます。これは 365 を返します。

しかし、アンドロイドで使用すると、カーソルから値を取得できません。コードは次のとおりです。

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"));

ただし、列が 1 つしかないことがわかっているので、そのインデックスをそのまま使用できます。

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