2013-03-12 65 views
0

我正在开发一个android应用程序,其中已经为sqlite提供了数据库。如何对Android SQLite数据库中的文本数据执行算术运算

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

我得到用户使用datapicker的DOB并将其转换为'DD.MM.YYYY'格式。

现在我想火上表中选择查询,以获取其DOB在于“的startDate”和“结束日期”之间的所有行

我的问题是,如何在文本数据类型进行算术运算和我不能修改我的数据库。

我尝试下面的查询,但没有获得成功:

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

请指引我。我搜索了很多,但无法取得成功。

在此先感谢。

+1

重复http://stackoverflow.com/questions/15332680/how-to-check-that-c​​ertain-date-in的日期间 – 2013-03-12 11:32:48

回答

0

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

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

在android sqlite中,默认格式是“YYYY-MM-DD”,但在提供数据库时,我的格式是“DD.MM.YYYY”。我怎么能在这个日期格式的查询之间执行? – 2013-03-12 11:29:27

+1

检查[this](http://www.sqlite.org/lang_datefunc.html),并尝试相应地转换日期。 – SudoRahul 2013-03-12 11:32:57

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; 
} 
相关问题