的sqlite docs給用於存儲日期這些列類型選項:
- TEXT如ISO8601字符串( 「YYYY-MM-DD HH:MM:SS.SSS」)。
- 真實的Julian日數,自中午4714年11月24日格林威治中午以來的天數。根據預測的公曆。
- INTEGER as Unix Time,自1970-01-01 00:00:00 UTC以來的秒數。
您可以使用Doug Currie所述的TEXT,或者您可以使用INTEGER使用java.util.Date。 (我不知道爲什麼你會使用真實的選項。)
要使用INTEGER,您可以加載和存儲日期是這樣的:
// build a date from a Cursor
Date d = new Date(cursor.getLong(DATE_FIELD_INDEX));
// add a date to an SQLiteDatabase
final ContentValues values = new ContentValues();
values.put(DATE_FIELD, d.getTime());
db.insert(TABLE_NAME, null, values);
這將是你的數據庫的可讀性,但日期之間的比較(在您的查詢中)應該更快,因爲比較數字比字符串更快。 (雖然我不知道很多關於sqlite的執行情況。)
我同意使用ISO格式,特別是對容易排序 – Squonk 2011-03-18 16:45:45