我的日期欄是整型的即將到來的生日排序我試圖將解決方案轉換成SQLite語法,但沒有運氣。 任何人都想把我推向正確的方向?SQLite的查詢,基於當前的日期
我甚至能夠得到例如每月時間戳:
strftime('%m', birthday) //unexpected value (dec = 1, jan = 1, jan = 6)
strftime('%m', 'now') // as expected (mar = 3)
任何幫助表示讚賞。
UPDATE 好了,現在我已經真正創造了一個爛攤子:
cur = db.rawQuery("SELECT "
+ "(strftime('%Y','now') - strftime('%Y',datetime(("+BIRTHDATE+"/1000), 'unixepoch', 'localtime'))) AS age,"
+ "date((" + BIRTHDATE + "/1000),'+' || age || ' year') AS currbirthday,"
+ "date((" + BIRTHDATE + "/1000),'+' || age+1 || ' year') AS nextbirthday"
+ " FROM " + TABLE
+ " ORDER BY CASE"
+ " WHEN currbirthday < date('now') THEN nextbirthday"
+ " ELSE currbirthday"
+ " END", null);
錯誤: 「沒有這樣的列時代」
好了,好了,我試圖把整個表達式計算「時代「在裏面的concat,但結果卻是陌生的(年齡存儲正確的值):
Log.d("bdate", contact.getFirstname() + ": currbday=" + cur.getString(1));
Log.d("bdate", contact.getFirstname() + ": nextbday=" + cur.getString(2));
Samantha: currbday=-5705--6--29
Samantha: nextbday=-5704--6--29
有什麼建議嗎?
什麼是整數值的含義* *? SQLite將數字解釋爲Julian日期數字,或者用'unixepoch'修飾符作爲秒數。 – 2013-03-26 07:45:55
整數值的含義是unixtime。恢復日期: Date myDate = new Date(longFromDb); – msfoster 2013-03-26 23:52:52
我的問題是我存儲了毫秒,這實際上不是unixtime。 strftime('%m',日期(生日/ 1000))給了我正確的輸出。 – msfoster 2013-03-27 01:38:18