我正在嘗試創建一個簡單的提醒應用程序。我只是邏輯思考這個過程。基本上我希望能夠選擇一個日期和時間,例如星期一15:00,這將觸發每個星期一15:00,直到它從數據庫中刪除。說完這個例子,我有問題要完成這個過程。Android使用日期和SQLite
我將如何存儲DAY和TIME,什麼類型,我需要不同的列在我的表中? 如何將實時日期與當前日期進行比較,因此如果星期一的實時時間僅在星期一提醒,則會提醒?這可能嗎?
我需要主要使用日曆專注嗎?
我正在嘗試創建一個簡單的提醒應用程序。我只是邏輯思考這個過程。基本上我希望能夠選擇一個日期和時間,例如星期一15:00,這將觸發每個星期一15:00,直到它從數據庫中刪除。說完這個例子,我有問題要完成這個過程。Android使用日期和SQLite
我將如何存儲DAY和TIME,什麼類型,我需要不同的列在我的表中? 如何將實時日期與當前日期進行比較,因此如果星期一的實時時間僅在星期一提醒,則會提醒?這可能嗎?
我需要主要使用日曆專注嗎?
由於documentation說:
SQLite沒有存儲類存儲日期 和/或時間預留。相反,SQLite的內置日期和時間函數能夠將日期和時間存儲爲TEXT,REAL或INTEGER值。
您可以存儲日期和時間在下列格式TEXT
類型的字段:
YYYY-MM-DD HH:MM:SS.SSS
,然後使用內置的SQLite的date & time functions來過濾記錄。
另一種選擇是存儲日期&時間爲毫秒的時間戳和寫入適當的查詢,用於選擇數據,或使用約達文庫進行篩選或日期&時間變換,但可能這樣的解決方案將是低效率的並且比方便少第一個選項。
使用整數列是最簡單的解決方案。
只需存儲以毫秒爲單位的日期(Calendar.getTimeInMillis()
)和您的好去處。
然後你只需要搜索該整數找到您的數據庫中正確的事件:
String selectQuery = "SELECT whateveryouneed FROM events WHERE date_event > ?";
Cursor c = db.rawQuery(selectQuery, new String[] { String.valueOf(calendar.getTimeInMillis())});
...
如果你需要找到所有的活動一天,你只需要找到的限制以毫秒爲單位並根據這些限制進行查詢
所以如果我創建了3列。日,開始時間,結束時間。我可以比較例如,如果星期一輸入是星期一,我可以使用%星期一%從日曆對象getDay與當前日期進行比較 – Mark 2015-03-13 15:38:30
我認爲,在您的情況下,用於表示日期和時間的許多列可能是合理的,如果您想要訪問一週中的某幾天的記錄。您甚至可以存儲從1到7(或從0到6)的數字,以表示一週的幾天,並且與存儲字符串的情況相比,使用較少的數據庫存儲。 – 2015-03-13 15:57:43
因此,如何將SQLite中存儲的日期與當前現實生活中的日期進行比較 – Mark 2015-03-13 16:04:52