如何从日期列中基于日期选择SQLIte列

时间:2018-09-30 14:12:53

标签: java android sqlite

我有一个SQLite数据库,我在其中基于给定日期从所有列中获取数据。 2018年9月30日。我在COL2中以相同格式保存日期。

Cursor inc_con_by_dat(String dat) {
    SQLiteDatabase db = this.getWritableDatabase();

    String que = "SELECT * FROM " + TABLE_NAME +
            " WHERE " + COL2 + " = '" + dat + "'";
    return db.rawQuery(que, null);
}

但是现在COL2不再具有像2018年9月30日这样的日期格式。因为我决定也将数据输入时间也包括在COL2中。

因此,我将COL2保存为“ EEE MMM dd HH:mm:ss Z yyyy”这种格式。但我愿意将“ EEE MMM dd HH:mm:ss Z yyyy”格式更改为包括日期和时间在内的任何格式。但是我想选择仅提供像这样的示例格式“ 30 Sep 2018”或yyyy / mm / dd的列 谁能帮我。或者我只需要在时间输入中再写一列。

1 个答案:

答案 0 :(得分:2)

  

所以我将COL2保存为“ EEE MMM dd HH:mm:ss Z yyyy”这种格式

停止这样做。 SQLite实际上没有日期列类型,这意味着您的日期信息被存储为文本。与其尝试给您一个解决方法,不如我只是建议您始终使用ISO格式将日期和时间戳记存储在SQLite中,例如:

YYYY-MM-DD HH:MI:SS

如果您采纳此建议,则可以轻松地将另一个ISO日期或时间戳与表中的任何记录进行比较。例如,如果要查找所有时间戳记为2018-09-30的记录,则可以使用以下查询:

SELECT *
FROM yourTable
WHERE ts >= '2018-09-30' AND ts < '2018-10-01';