sql >> Base de Datos >  >> RDS >> SQLite

¿Ordenar fechas en la base de datos sqlite?

En sqlite realmente no tiene un tipo de fecha. Puede almacenar fechas como cadenas utilizando uno de sus formatos predefinidos; consulte http://www.sqlite.org/lang_datefunc.html para obtener más información.

Una cadena de tiempo puede tener cualquiera de los siguientes formatos:

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

Debe almacenarlos en AAAA-MM-DD, luego puede ordenarlos por límite de asc 1 para obtener la fecha más antigua. Entonces, en lugar de

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

Tendrás que almacenarlos así

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

Finalmente lees las filas si las hay

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();