SQLite
 sql >> Base de données >  >> RDS >> SQLite

Trier les dates dans la base de données sqlite ?

Dans sqlite n'a pas vraiment de type de date. Vous pouvez stocker des dates sous forme de chaînes en utilisant l'un de leurs formats prédéfinis, voir http://www.sqlite.org/lang_datefunc.html pour plus d'informations.

Une chaîne d'heure peut être dans l'un des formats suivants :

YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD

Vous devez les stocker au format AAAA-MM-JJ, puis vous pouvez les trier par ordre croissant 1 pour obtenir la date la plus ancienne. Ainsi, au lieu de

Column_Date
------------
Nov-07-2012
Nov-21-2012
Nov-25-2012
Oct-25-2012
Oct-24-2102

Vous devrez les stocker comme ça à la place

Column_Date
------------
2012-11-07
2012-11-21
2012-11-25
2012-10-25
2012-10-24

Enfin vous lisez les lignes s'il y en a

Cursor oldestDateCursor = db.query("DateTableName", null, null, null, null, null, "date_column ASC LIMIT 1");
if (oldestDateCursor.moveToFirst())
{
    String date = oldestDateCursor.getColumnName(oldestDateCursor.getColumnIndex("date_column"));
}
oldestDateCursor.close();