Android 如何统计Sqlite表中与日期限制匹配的记录?

Android 如何统计Sqlite表中与日期限制匹配的记录?,android,sqlite,date,android-cursorloader,Android,Sqlite,Date,Android Cursorloader,我正在使用游标加载程序从我的内容提供商返回一个记录计数,我只需要计算那些7天或更少的记录。到目前为止,我试图完成这项工作的努力只带来了挫折,因为计数总是为零。我对Sqlite和游标加载程序的经验有限,我怀疑我犯了一个非常简单的错误。这是我的密码: String strCriteria = "SELECT julianday('now') - julianday('" + Session.DATE_STRING + "','gregorian') <8"; retu

我正在使用游标加载程序从我的内容提供商返回一个记录计数,我只需要计算那些7天或更少的记录。到目前为止,我试图完成这项工作的努力只带来了挫折,因为计数总是为零。我对Sqlite和游标加载程序的经验有限,我怀疑我犯了一个非常简单的错误。这是我的密码:

String strCriteria = "SELECT julianday('now') - julianday('" + Session.DATE_STRING
            + "','gregorian') <8";

return new CursorLoader(getSherlockActivity(), Session.CONTENT_URI, 
           new String[] {"count(" + Session.TABLE_NAME + "." + Session._ID +") AS Count " }, 
          strCriteria, null,null);  
String strCriteria=“选择julianday('now')-julianday('”+Session.DATE\u字符串

+“,'gregorian')我不确定这是否能满足您的要求,但我的应用程序中有一个缓存清理器,可以清除数据库中可能在x天前存储的任何记录

第一步:保存每条记录时,我将日期保存为毫秒。请记住,我还将日期保存为字符串,因为我也将其用于标签和其他内容

Ste Two:创建Where语句:

String where = DbOpenHelper.SAVED_ON + " <= " + (System.currentTimeMillis() - msBackInTime);

Daniel,这种方法有一些优点,但也可能导致结果不完全正确。5天=432000000毫秒。如果我在下午3点运行查询,它将“丢失”7天前9点输入的记录,因为这些记录将在432000000毫秒之前,尽管从“日期”的角度来看,它们应该被返回。话虽如此,如果我不能正确地解决这个问题,我可能不得不求助于这种方法。我试图找到更合适的方法,但无法真正解决文本字符串中的任何问题,如果你确实找到其他方法,请随时通知我
String strCriteria = "SELECT julianday('now') - julianday(" + Session.DATE_STRING
            + ",'gregorian') <8";
String where = DbOpenHelper.SAVED_ON + " <= " + (System.currentTimeMillis() - msBackInTime);