【问题标题】:How to perform arithmatic operation on Text data in android SQLite database如何对android SQLite数据库中的文本数据进行算术运算
【发布时间】:2013-03-12 11:23:03
【问题描述】:

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

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

我使用数据选择器获取用户的出生日期并将其转换为“DD.MM.YYYY”格式。

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

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

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

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

请指导我。我搜索了很多,但没有成功。

提前致谢。

【问题讨论】:

标签: android database sqlite android-widget


【解决方案1】:

您可以使用 BETWEEN 进行日期范围检查。

//Note that the date format is "YYYY-MM-DD"
SELECT * FROM test WHERE date BETWEEN startDate AND endDate; 

【讨论】:

  • 在 android sqlite 中,默认格式是“YYYY-MM-DD”,但在提供数据库时,我的格式是“DD.MM.YYYY”。我如何在这种日期格式的查询之间执行?
  • 检查 this 并尝试相应地转换日期。
【解决方案2】:

在您的 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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-06
    • 2021-05-02
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    • 1970-01-01
    • 2011-08-24
    相关资源
    最近更新 更多