Android 查询距离一个礼拜的记录

   该应用或许可以增加一个功能,可以模仿微信 “摇一摇”功能,开发这样一个功能,用户不用打开该应用,通过
摇一摇就可以查看最近一个礼拜的备忘记录。
   解决方案1:
    SQLiteDatabase sdb = sd.getReadableDatabase();// 取得SQLiteDatabase数据库实例
// 从sqlite数据库里面提取数据
Cursor c1 = sdb.query("note", new String[] { "noteTime"
}, "julianday('now')-julianday(note.noteTime)>7", null, null, null, "noteId asc");
while (c1.moveToNext()) {
String noteTime = c1.getString(c1.getColumnIndex("noteTime"));
tv.setText(noteTime);
}
sdb.close();

成功解决 

    上述代码存在缺陷,是查找距离今天前7天的代码,没有查找距离今天大的日期,修改方案如下:


   解决方案2:
    SQLiteDatabase sdb = sd.getReadableDatabase();// 取得SQLiteDatabase数据库实例
// 从sqlite数据库里面提取数据
Cursor c1 = sdb.query("note", new String[] { "noteTime"
}, "julianday('now')-julianday(note.noteTime)<7", null, null, null, "noteId asc");
while (c1.moveToNext()) {
String noteTime = c1.getString(c1.getColumnIndex("noteTime"));
tv.setText(noteTime);
}
sdb.close();
上述的代码只是查找出了距离今天前的7天的距离,与业务逻辑不符。
不过把上述的代码改成:
 SQLiteDatabase sdb = sd.getReadableDatabase();// 取得SQLiteDatabase数据库实例
Map<String, Object> map = new HashMap<String, Object>();

// 从sqlite数据库里面提取大于今天日d的备忘记录数据
Cursor c1 = sdb.query("note", new String[] { "noteTime","noteContent"
}, "strftime('%d',noteTime)>strftime('%d','now')", null, null, null, "noteId asc");
/*
* 后台打印数据为:11-13 10:47:27.588: I/System.out(1272): 2013-10-14 09:57:09
                               11-13 10:47:27.588: I/System.out(1272): 2013-10-15 09:57:41
                               11-13 10:47:27.589: I/System.out(1272): 2013-10-16 09:58:11


*/
String result="";// 保存遍历结果
while (c1.moveToNext()) {
String noteContent=c1.getString(c1.getColumnIndex("noteContent"));
String noteTime = c1.getString(c1.getColumnIndex("noteTime"));
result=result+noteTime+"\n"+noteContent+"\n";
System.out.println(result);// 后台打印信息时查询出了后台打印了两条2013年11月12日的信息:
/*map.put("noteTime", noteTime);
// 测试sql语句是否查询最近一个礼拜的记录信息
System.out.println(map.toString());
// 结果是错误的:后台打印了两条2013年11月12日的信息:分别是:11-13 09:07:31.152: I/System.out(3401): {noteTime=2013-11-12 10:51:40}、11-13 09:07:31.159: I/System.out(3401): {noteTime=2013-11-12 10:53:09}
Collection<Object> vs = map.values();    //获取Map集合的value集合
String str="";// 保存values值
for (Object object : vs) {
str=str+object;
       System.out.println(str); //输出键值对象
   }*/
}
tv.setText(result);
c1.close();
成功查找出比今天日期大的记录。主要是修改了sql语句,改成了:
"strftime('%d',noteTime)>strftime('%d','now')"
成功解决。以后完善一下是不是可以查找出距离一个礼拜的记录。待续。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值