我有一个包含以下列的数据库(附截图)
_id = 整数主键
guid = TEXT(图像的唯一 ID)
pubDate = LONG(自纪元以来的时间)
imgsrc = BLOB(图像字节)
要求是我只想保留今天下载的图像。我想删除过时的数据...即昨天的数据。
对于前id = 1
考虑guid = 471c9744666b6f51
此图像是在Wed Dec 26 2012 17:11:05下载的,因此数据库应仅包含 12 月 26 日的数据,而不是 12 月 25 日的数据。第一个发布日期不必是今天的日期。因此,可能首先我们需要按 pubdate 以降序对 db 进行排序,然后使用第一个 pubdate 作为输入来删除旧数据。
任何有关如何形成 SQL 语句的帮助将不胜感激。
答:最终做了这样的事情..
long maxDate = 0;
Cursor cursor = getApplicationContext().getContentResolver().query(IMAGES_URI, null, null, null, PUB_DATE + " DESC ");
if (cursor != null && cursor.moveToNext()) {
maxDate = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseHelper.PUB_DATE));
cursor.close();
}
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(maxDate);
cal.add(Calendar.HOUR, -12);
int delcount = getApplicationContext().getContentResolver().delete(IMAGES_URI, PUB_DATE + " <= " + cal.getTimeInMillis(), null);