私の日付列は整数型です:
myDate.getTime() //long saved in db
今後の誕生日を最適に並べ替える方法を調査しているときに、次のことがわかりました。 現在の日付に基づいて今後の誕生日を並べ替えるMySQLクエリ
ソリューションをSQLite構文に変換しようとしましたが、うまくいきませんでした。誰かが私を正しい方向に押したいですか?
たとえば、タイムスタンプの月を取得することさえできません。
strftime('%m', birthday) //unexpected value (dec = 1, jan = 1, jan = 6)
strftime('%m', 'now') // as expected (mar = 3)
助けていただければ幸いです。
更新 わかりました、今私は本当に混乱を作成しました:
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);
エラー:「そのような列の経過時間はありません」
さて、「年齢」を計算する式全体を連結内に入れてみましたが、結果は奇妙です(年齢は正しい値を格納します):
Log.d("bdate", contact.getFirstname() + ": currbday=" + cur.getString(1));
Log.d("bdate", contact.getFirstname() + ": nextbday=" + cur.getString(2));
サマンサ:currbday = -5705--6--29
サマンサ:nextbday = -5704--6--29
助言がありますか?