0

データベースが既に sqlite 用に提供されている Android アプリを開発しています。

このデータベースには、「TEXT」データ型を持つ「DD.MM.YYYY」形式の「startDate」フィールドと「endDate」フィールドを持つテーブルがあります。

datapicker を使用してユーザーの生年月日を取得し、「DD.MM.YYYY」形式に変換します。

ここで、上記のテーブルで選択クエリを実行して、dob が「startDate」と「endDate」の間にあるすべての行を取得したいと考えています。

私の問題は、テキスト データ型に対して算術演算を実行する方法と、データベースを変更できないことです。

次のクエリを試しましたが、成功しませんでした:

SELECT * FROM TABLE_NAME WHERE startData >= dob AND endDate <= dob;

私を案内してください。私はたくさん検索しましたが、成功することはできませんでした。

前もって感謝します。

4

2 に答える 2

0

あなたのsqliteクエリで、次の関数を書いてください...

String[] getWeekCount(String start, String end)
{

    int i=0;
    String[] text=null;
    String selectQuery ="select * from tablename where date_col BETWEEN date ('" + start + "') and date('" + end + "')";
    SQLiteDatabase db = this.getReadableDatabase();

    try
    {
        Cursor cursor = db.rawQuery(selectQuery, null);
        if (cursor.moveToFirst()) 
        {  
            do 
            {
                 text[i]=cursor.getString(0).toString();
                             i++;
            }while (cursor.moveToNext());
        }
        else
            return 0;
        db.close();

    }
    catch (Exception e) 
    {
        System.out.println("Exception throw in SQLiteDBHandler"+e);
    }
    return text;
}
于 2013-03-12T11:34:01.677 に答える
0

日付範囲のチェックには BETWEEN を使用できます。

//Note that the date format is "YYYY-MM-DD"
SELECT * FROM test WHERE date BETWEEN startDate AND endDate; 
于 2013-03-12T11:25:10.863 に答える