如何查询两个日期时间列之间的行?
我的示例表:
message | startdatetime | enddatetime
--------------------------------------------------------------------------------
Hi | 2013-04-09 10:00:00 | 2013-04-09 10:30:00
Good morning | 2013-04-09 10:40:00 | 2013-04-09 10:50:00
我的查询:
fromDateTime="2013-04-09 10:00:00"; toDateTime="2013-04-09 10:50:00";
c1 = myDB.rawQuery("select * from masterdatatable where number=? and startdatetime >= datetime(?) and enddatetime <= datetime(?) order by enddatetime, new String[]{imei,fromDateTime,toDateTime});
此处如果传递 fromDateTime="2013-04-09 10:00:00 "和 toDateTime="2013-04-09 10:50:00 "
此查询正确返回以上两条记录。
但是如果我通过 fromDateTime="2013-04-09 10:05:00 "; toDateTime="2013-04-09 10:20:00 "
,此查询返回空游标。实际上我希望这个查询返回第一行。如何实现?
最佳答案
我是通过以下方法实现的,
Cursor c0 = myDB.rawQuery("select startdatetime from masterdatatable where datetime(?) >= startdatetime and datetime(?) <= enddatetime order by startdatetime asc limit 1", new String[]{fromDateTime,fromDateTime});
String fromDate1=fromDateTime;
if(c0.moveToFirst())
{
fromDate1 = c0.getString(0);
}
Log.i("date", "fromDate1->"+fromDate1);
Cursor c01 = myDB.rawQuery("select startdatetime from masterdatatable where datetime(?) >= startdatetime and datetime(?) <= enddatetime order by startdatetime desc limit 1", new String[]{toDateTime,toDateTime});
String fromDate2=toDateTime;
if(c01.moveToFirst())
{
fromDate2 = c01.getString(0);
}
Log.i("date", "fromDate2->"+fromDate2);
c1 = myDB.rawQuery("select * from masterdatatable where startdatetime between datetime(?) and datetime(?) order by enddatetime, new String[]{fromDate1,fromDate2});
关于android - 如何查询两个日期时间列之间的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15919258/