我有一个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的列 谁能帮我。或者我只需要在时间输入中再写一列。
答案 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';