我有下表列值:
2013-06-28T13:00:00.000Z Motion
2013-06-28T18:15:00.000Z Static (row2)
2013-07-03T13:57:22.000Z Moving (row3)
2013-07-03T13:59:00.000Z Motion
我想检查日期是否都是静态29-06-2013T01:00:00Z
的。同样,我想检查日期和. 如果我们考虑上表的值,显然这是正确的,因为两个日期都在 row2 和 row3 之间。29-06-2013T05:00:00Z
30-06-2013T01:00:00Z
30-06-2013T05:00:00Z
如何用 sqlite 做到这一点?
我正在获取日期29-06-2013
和30-06-2013
. 所以首先我需要将时间 1am 和 5am 设置为这两个日期,然后检查它们是否都是Static。
我尝试了以下方法:
Calendar cal1 = Calendar.getInstance();
cal1.setTime(input1.parse(startDate.get(0))); //29-06-2013
cal1.add(Calendar.AM, 1); //Added 1am to date 29-06-2013
weekHours = cal1.getTime();
Cursor chkCur1 = dbAdapter.rawQuery("select movement from user where Date <= '"
+ input1.format(weekHours) + "' order by Date asc LIMIT 1", null);
chkCur1.moveToFirst();
if(!chkCur1.isAfterLast() && chkCur1.getString(0).equals("Static"))
{
cal1.add(Calendar.AM, 5); //Added 5am to date 29-06-2013
weekHours = cal1.getTime();
}
chkCur1 = dbAdapter.rawQuery("select movement from user where Date <= '"
+ input1.format(weekHours) + "' order by Date asc LIMIT 1", null);
chkCur1.moveToFirst();
if(!chkCur1.isAfterLast() && chkCur1.getString(0).equals("Static")){
cal1.add(Calendar.DATE, 1);
cal1.add(Calendar.AM, 1); //Added 1am to date 30-06-2013
weekHours = cal1.getTime();
}
chkCur1 = dbAdapter.rawQuery("select movement from user where Date <= '"
+ input1.format(weekHours) + "' order by Date asc LIMIT 1", null);
chkCur1.moveToFirst();
if(!chkCur1.isAfterLast() && chkCur1.getString(0).equals("Static")){
cal1.add(Calendar.AM, 5); //Added 5am to date 30-06-2013
weekHours = cal1.getTime();
}
chkCur1 = dbAdapter.rawQuery("select movement from user where Date <= '"
+ input1.format(weekHours) + "' order by Date asc LIMIT 1", null);
chkCur1.moveToFirst();
if(!chkCur1.isAfterLast() && chkCur1.getString(0).equals("Static")){
System.out.println("Both dates are in between")
}
我使用了 4 个 sql 查询:
1)将时间设置1am
为 date1 并检查其先前是否为静态。
2)将时间设置5am
为 date1 并检查其前一个是否为静态。
3)将时间设置1am
为 date2 并检查其前一个是否为静态。
4)将时间设置5am
为 date2 并检查其前一个是否为静态。
如果所有条件都满足,那么两个日期(date1 和 date2)都介于两者之间,即静态。
但这是 sql 查询的重复,从而减慢了进程。