在sqlite数据库中排序日期?

MrA*_*MrA 5 sqlite android android-sqlite

我开发了一个App ..因为我有一个数据库,它有很多表.其中一个表有日期列.我的问题是我必须对日期进行排序,并且必须从下表列中选择最早的一个像Oct-24-2012

Column_Date
------------

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

我该怎么做....我已经将日期列存储在字符串中...如果我需要更改日期列的数据类型,请告诉我应该使用哪种数据类型.我应该如何对Column进行排序.根据该数据类型..

Rej*_*eri 11

在sqlite中确实没有日期类型.您可以使用其预定义格式之一将日期存储为字符串,请参阅http://www.sqlite.org/lang_datefunc.html以获取更多信息.

时间字符串可以采用以下任何格式:

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
Run Code Online (Sandbox Code Playgroud)

您需要将它们存储在YYYY-MM-DD中,然后您可以按asc限制1对它们进行排序以获取最早的日期.而不是

Column_Date
------------
Nov-07-2012
Nov-21-2012
Nov-25-2012
Oct-25-2012
Oct-24-2102
Run Code Online (Sandbox Code Playgroud)

你必须像这样存储它们

Column_Date
------------
2012-11-07
2012-11-21
2012-11-25
2012-10-25
2012-10-24
Run Code Online (Sandbox Code Playgroud)

最后你读了行(如果有的话)

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();
Run Code Online (Sandbox Code Playgroud)