android - 在sqlite数据库中排序日期?

标签 android sqlite android-sqlite

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

列日期
--------------

2012 年 11 月 7 日
2012 年 11 月 21 日
2012 年 11 月 25 日
2012 年 10 月 25 日
2102 年 10 月 24 日

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

最佳答案

在 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

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

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

你必须像这样存储它们

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

最后你读了行

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

关于android - 在sqlite数据库中排序日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13300463/

相关文章:

android - 如何在 textview 中添加 imageview 或在 imageview 中添加 textview,android?

android - FFMPEG 音频转换花费了太多时间

android - 使用 ColorStateList 色调值膨胀 ImageView/ImageButton 时出错

android - 将本地设备 SQLite 同步到我的 mySQL 服务器

java - 使两列在sqlite中唯一

android - 从单个图像生成一个视频时,ffmpeg视频连接不起作用

java - 在 AsyncTask doInBackground 中创建 140,000 行 SQLite 数据库需要很多很多分钟

c# - 在 C# 中打开 SQLite 数据库而不安装任何东西

android - 我应该什么时候关闭 DatabaseHelper?

java - 使用 SQLiteQueryBuilder 生成 UPDATE 查询