Cursor cursor = db.rawQuery("SELECT csId FROM table_messages WHERE date < date('now','-7 days') ", null);
任何人都可以更正我的查询
答案 0 :(得分:0)
您可以从Date()获得毫秒值.getTime()或System.currentTimeMillis()都将返回&#34;当前时间与UTC时间1970年1月1日午夜之间的差值(以毫秒为单位)。 #34;
获得前七天的时间戳。试试这个 -
Calendar current = Calendar.getInstance();
current.add(Calendar.DATE, -7);
long millis = current.getTime().getTime();//Change this line
Cursor cursor = db.rawQuery(
"SELECT csId FROM table_messages WHERE date < " + String.valueOf(millis), null);
编辑:您看到第二行代码,您可以根据需要添加减去天数,并从日历对象中提取毫秒并在查询中使用它
编辑2:
1. current.add(Calendar.DATE,-7);这里-7表示你从今天开始减去7天。您可以将其设为-30(减去30天)或仅30(增加30天)意味着尝试更改值,因为可能是您查询的表没有任何与条件匹配的记录。
2.从表中选择所有行并在logcat上打印并打印从Calendar获得的毫秒数,手动匹配表中是否存在从日历中获得的毫秒数。
3.替换此行long millis = current.getTimeInMillis(); with long millis = current.getTime()。getTime();
4.如果收到错误,请发布错误消息
如果这样可以解决您的问题,请将此帖标记为答案。
答案 1 :(得分:0)
您可以使用时间戳&gt;进行查询6天前&lt; 7天前
Calendar sixDaysAgo = Calendar.getInstance();
sixDaysAgo.add(Calendar.DATE, -6);
long millis6Days = sixDaysAgo.getTimeInMillis();
Calendar sevenDaysAgo = Calendar.getInstance();
sevenDaysAgo.add(Calendar.DATE, -7);
long millis7Days = sevenDaysAgo.getTimeInMillis();
Cursor cursor = db.rawQuery(
"SELECT csId FROM table_messages WHERE date > " + String.valueOf(millis6Days) + " AND date < " + String.valueOf(millis7Days), null);