android - 如何查询两个日期时间列之间的行?

标签 android sqlite

如何查询两个日期时间列之间的行?

我的示例表:

 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/

相关文章:

android - BlueZ 与 Bluedroid 蓝牙堆栈

Android: fragment 堆栈屏幕旋转/配置已更改

java - Android - TextViews 不显示在 ListView 中

java - Android Studio SQLite 错误 : Couldn't read row 0, 来自 CursorWindow 的第 3 列

ios - 插入数据库在 iOS 中不起作用?

django - 通过Django代码将值分配给一对多字段

sqlite - SQLite 中的日期函数不选择数据库中的行

android - 无法在 cordova 3.5.0 中添加 android 平台

android - Activity onStart() 操作导致黑屏

c# - Xamarin PCL库和Sqlite数据存储