2014-02-25 42 views
0

我想从当前日期获取最后7个日期的数据我现在将当前日期保存为字符串现在我将如何获取使用查询的最后7个数据日期?目前我的代码现在从降序返回我最近20个数据,我只想显示最近7天的数据,那么我该怎么办?如何使用当前日期从数据库中获取最近7个日期的数据

public class JobSchema extends BackBaseActivity { 

      List<JobSchmeModel> jobarr, missedarr; 

       @Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.jobsschema); 

      Calendar c = Calendar.getInstance(); 
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yy HH:mm"); 
     String formattedDate = df.format(c.getTime()); 



      DatabaseHandler db = new DatabaseHandler(JobSchema.this); 
       jobarr = db.getALLCompJobs(); 




     public class DatabaseHandler extends SQLiteOpenHelper { 



       String CREATE_COMPLETED_TABLE = "CREATE TABLE " + TABLE_COMPLETED_JOBS 
      + "(" + KEY_COMPID + " INTEGER PRIMARY KEY," + KEY_TIMEJOB 
      + " TEXT," + KEY_PICK + " TEXT," + KEY_DEST + " TEXT," 
      + KEY_FARE + " TEXT" + ")"; 




        public List<JobSchmeModel> getALLCompJobs() { 
    List<JobSchmeModel> compjobsList = new ArrayList<JobSchmeModel>(); 
    // Select All Query 
    String selectQuery = "SELECT * FROM " + TABLE_COMPLETED_JOBS+ " ORDER BY 
    "+KEY_COMPID+" DESC LIMIT 20"; 

    SQLiteDatabase db = this.getWritableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 

    // looping through all rows and adding to list 
    if (cursor.moveToFirst()) { 
     do { 
      JobSchmeModel jobmodel = new JobSchmeModel(); 
      jobmodel.setTime(cursor.getString(1)); 
      jobmodel.setPick(cursor.getString(2)); 
      jobmodel.setDestination(cursor.getString(3)); 
      jobmodel.setFare(cursor.getString(4)); 
      // Adding contact to list 
      compjobsList.add(jobmodel); 
     } while (cursor.moveToNext()); 
    } 

    db.close(); 

    return compjobsList; 
} 

回答

2

试试用这个命令可以获得7天之前的日期。

Calendar calender = Calendar.getInstance(); 
calender.add(Calendar.DAY_OF_MONTH, -7); 
Date date = new Date(); 
date.setTime(calender.getTimeInMillis()); 
SimpleDateFormat postFormater = new SimpleDateFormat("dd/MM/yy HH:mm"); 
String dateBefore7day = postFormater.format(date); 

现在您的查询就会

String selectQuery = "SELECT * FROM " + TABLE_COMPLETED_JOBS + " WHERE " + KEY_TIMEJOB + ">=" + dateBefore7day + " ORDER BY "+KEY_COMPID+" DESC"; 

编辑:

为了得到最近7天的数据到今天,如果你有未来日期的数据(数据与当前日期后日期)那么你需要使用这个。

String selectQuery = "SELECT * FROM " + TABLE_COMPLETED_JOBS + " WHERE " + KEY_TIMEJOB + ">=" + dateBefore7day + " AND " + KEY_TIMEJOB + "<=" + currentDate + " ORDER BY "+KEY_COMPID+" DESC"; 
+0

这将是更好的通过查询,这个答案只解决了一半的问题。 – Skynet

+0

好吧,现在我有两天的当前日期和7天之前,所以我如何将lmakw查询获取两个日期之间的所有记录? – user3332060

+0

只是告诉我如何使查询得到如果日期<=当前日期 – user3332060

相关问题