我正在开发一个Android应用程序,其中已经为sqlite提供了数据库。
在这个数据库中有一个表格,其中“startDate”和“endDate”字段的格式为“DD.MM.YYYY”,其中包含“TEXT”数据类型。
我使用datapicker获取用户的DOB并将其转换为'DD.MM.YYYY'格式。
现在我要在上面的表中触发select查询以获取位于'startDate'和'endDate'之间的所有行
我的问题是如何对文本数据类型执行算术运算,我无法修改我的数据库。
我尝试了以下查询但未获得成功:
SELECT * FROM TABLE_NAME WHERE startData >= dob AND endDate <= dob;
请指导我。我经常搜索但是无法获得成功。
提前致谢。
答案 0 :(得分:0)
您可以使用BETWEEN进行日期范围检查。
//Note that the date format is "YYYY-MM-DD"
SELECT * FROM test WHERE date BETWEEN startDate AND endDate;
答案 1 :(得分: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;
}