Je cherche sur le net pour trouver une solution à ce besoin: J'ai besoin de rassembler la somme du groupe de données 'amout' par mois.SQLite sélectionnez la somme avec le groupe mensuel par
Ce que je trouve cette demande est:
Cursor cursor = mDb.rawQuery("SELECT strftime('%m', date), SUM(amount) FROM " + DATABASE_TABLE + " GROUP BY strftime('%m', date)", null);
mais je tire mes cheveux depuis que je ne suis pas en mesure de recueillir un mois de cette fonction strftime('%m', date);
J'ai trouvé sur le net que cela pourrait provenir d'un format de date dans ma base de données qui ne sera pas compris par la fonction.
La date stockée dans mon actuel DB est: "Jeu 1 décembre 00:00:00 GMT + 00: 00 2016"
-je utiliser ce curseur pour vérifier la valeur retournée:
Cursor cursor = mDb.rawQuery("SELECT distinct date, strftime('%m', date) FROM " + DATABASE_TABLE, null);
dans le curseur (vérifier que la première vérification du curseur) J'ai:
- cursor.getString (0) = Jeu 1 décembre 00:00:00 GMT + 00: 00 2016
- cursor.getString (1) = null
Donc, je rassemble correctement la date, c'est la conversion qui ne fonctionne pas. Comme proposé et comme expliqué, j'ai pensé que le format pourrait être mal compris par la fonction (et c'est évidemment le cas).
Voici comment ajouter la date à ma base de données: J'utilise ceci: dateFormat = new SimpleDateFormat("dd/MM/yyyy");
puis cette ligne pour ajouter la date à mon objet de l'argent avant de l'enregistrer dans la base de données: dateFormat.parse("01/12/2016")
Can vous m'avez aidé? Merci.
'La date stockée dans mon actuel DB est: "Jeu 1 décembre 00:00:00 GMT + 00: 00 2016"' Ensuite, nous avons la cause de votre bug. Vous devez stocker votre date en tant que chaîne SQLite ** valide **. –
Ok, c'est ce que je pensais, mais j'ai essayé plusieurs façons d'analyser, sans savoir comment ajouter une date valide, et qu'est-ce qu'une date valide, SQLite parle? Merci. – Alexandre
c.-à-d.: «2016-12-09». Vous pouvez rechercher 'sqlite timestring' et accéder aux documents officiels. –