J'essaie de décrire mon code plus clairement.Comment obtenir les 7 derniers jours et le commander si le format de la date est aaaaMdj?
Voici donc ma question:
Je suis coincé avec ma base de données, je veux rechercher plus tard 7 jours, mais je conserver mon format de date est yyyymdd comme 2017/9/30
Si je veux rechercher tous mes dossiers et l'ordre, mon réussir code comme ceci:
public List<Contact> sortingDate() {
List<Contact> contactList = new ArrayList<>();
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_CONTACTS +" ORDER BY\n" +
" SUBSTR(Date, 1, 4) DESC,\n" +
" CASE WHEN INSTR(SUBSTR(Date, 6), '/') = 2\n" +
" THEN '0' || SUBSTR(Date, 6, 1)\n" +
" ELSE SUBSTR(Date, 6, 2) END DESC,\n" +
" CASE WHEN LENGTH(SUBSTR(SUBSTR(Date, 6), INSTR(SUBSTR(Date, 6), '/') + 1)) = 1\n" +
" THEN '0' || SUBSTR(SUBSTR(Date, 6), INSTR(SUBSTR(Date, 6), '/') + 1)\n" +
" ELSE SUBSTR(SUBSTR(Date, 6), INSTR(SUBSTR(Date, 6), '/') + 1) END DESC; ",null);
//looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0)));
contact.setDate(cursor.getString(1));
contact.setBeforeMorning(cursor.getString(2));
contact.setAfterMorning(cursor.getString(3));
contact.setBeforeNoon(cursor.getString(4));
contact.setAfterNoon(cursor.getString(5));
contact.setBeforeNight(cursor.getString(6));
contact.setAfterNight(cursor.getString(7));
System.out.println("The result is :" + cursor.getString(1));
//Adding contact to list
contactList.add(contact);
} while (cursor.moveToNext());
}
return contactList;
}
et puis-je essayer d'ajouter dernière recherche jours code pour ma fonction, je fixer une date par défaut 2017/09/30
// order latest days
public List<Contact> latestDays() {
List<Contact> contactList = new ArrayList<>();
// Database time format is: yyyymdd
Calendar mCalendar = new GregorianCalendar();
int mYear = mCalendar.get(Calendar.YEAR);
int mMonth = mCalendar.get(Calendar.MONTH)+1;
int mDay = mCalendar.get(Calendar.DAY_OF_MONTH);
String today = String.valueOf(mYear).concat(String.valueOf(mMonth).concat(String.valueOf(mDay)));
System.out.println(today+"today");
SQLiteDatabase db = this.getWritableDatabase();
// WHERE date...it is what i try the code
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_CONTACTS +" WHERE date > (SELECT DATETIME('2017/09/30'," + " ' -7" + " day'))" +
" ORDER BY\n" +
" SUBSTR(Date, 1, 4) DESC,\n" +
" CASE WHEN INSTR(SUBSTR(Date, 6), '/') = 2\n" +
" THEN '0' || SUBSTR(Date, 6, 1)\n" +
" ELSE SUBSTR(Date, 6, 2) END DESC,\n" +
" CASE WHEN LENGTH(SUBSTR(SUBSTR(Date, 6), INSTR(SUBSTR(Date, 6), '/') + 1)) = 1\n" +
" THEN '0' || SUBSTR(SUBSTR(Date, 6), INSTR(SUBSTR(Date, 6), '/') + 1)\n" +
" ELSE SUBSTR(SUBSTR(Date, 6), INSTR(SUBSTR(Date, 6), '/') + 1) END DESC; ",null);
//looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0)));
contact.setDate(cursor.getString(1));
contact.setBeforeMorning(cursor.getString(2));
contact.setAfterMorning(cursor.getString(3));
contact.setBeforeNoon(cursor.getString(4));
contact.setAfterNoon(cursor.getString(5));
contact.setBeforeNight(cursor.getString(6));
contact.setAfterNight(cursor.getString(7));
System.out.println("The result is :" + cursor.getString(1));
//Adding contact to list
contactList.add(contact);
} while (cursor.moveToNext());
}
return contactList;
}
J'appelle ma fonction:
private DatabaseHandler db;
contactList = db.latestDays();
System.out.println(contactList.size());
Il montre System.out: 0
Alors quel code me manque si je veux Recevoir les 7 derniers jours comme 2017/9/24
2017/9/29
2017/9/30
dans ma base de données?
Toute aide serait appréciée. Merci d'avance.
Essayez d'utiliser la déclaration BETWEEN en Sqlite – Grendel
Hey merci pour la réponse, j'essaie aussi WHERE Date entre le 23/8/2017 et 29/9/2017, c'est st Je n'ai pas travaillé :( –
J'ai été occupé avec mon propre problème de code Je vais essayer d'écrire un petit code qui récupérera toutes les données dans un sqlite db entre deux dates distantes de 7 jours Nous sommes sur Besoin d'utiliser l'instruction SELECT mais je suis sûr que vous savez que Montrez-moi votre nouveau SELECT SELECT avec BETWEEN – Grendel