0

我正在开发一个已经为 sqlite 提供数据库的 android 应用程序。

在此数据库中,有一个表,其中包含格式为“DD.MM.YYYY”的“startDate”和“endDate”字段,其数据类型为“TEXT”。

我使用 datapicker 获取用户的 DOB 并将其转换为“DD.MM.YYYY”格式。

现在我想在上表上触发选择查询以获取 dob 位于“startDate”和“endDate”之间的所有行

我的问题是如何对文本数据类型执行算术运算,我无法修改我的数据库。

我尝试了以下查询,但没有成功:

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

请指导我。我进行了很多搜索,但无法成功。

提前致谢。

4

2 回答 2

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 回答
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 回答