2016-10-19 7 views
0

Sqliteをテーブルの作成に取り組んでいないBY ORDERさ:なぜAndroidのでSqliteをクエリ

// Contacts table name 
private static final String TABLE_CHAL = "CD"; 

// Contacts Table Columns names 
private static final String KEY_ID = "id"; 
private static final String KEY_CHAL = "chal"; 
private static final String KEY_DATE = "date"; 

String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CHAL + "(" 
     + KEY_ID + " INTEGER PRIMARY KEY," + KEY_CHAL + " TEXT," 
     + KEY_DATE + " TEXT)"; 
db.execSQL(CREATE_CONTACTS_TABLE); 

クエリ(KEY_DATE順):上記

Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_CHAL + " ORDER BY [" + KEY_DATE + "] ASC", null); 

が動作していないようです。

注文する前にKEY_DATEを日付に変換する必要がありますか?

+0

なぜ大括弧をORDER BY句に入れましたか? – fiddler

+1

私はSQLの背景から来ているので、私はブラケットを置くべきだと思っています。私はスペースがあるカラムを持っています。 – Si8

+1

その列に入れる日付の形式は何ですか? – laalto

答えて

0

を使用することができます。それから私はdate("+KEY_FORMAT_DATE+")";に私のクエリを更新し、それは私のために働いた。

+0

私の解決策に向かって私を導いた皆様に感謝します。 – Si8

0

//この

カーソルカーソル= db.rawQuery(+ KEY_DATE + "ASC"、NULL "でORDER" + TABLE_CHAL + "SELECT * FROM")に置き換え。

+0

いいえ...動作しません。私はそれが文字列であるため薄いです。まずDATEに変換する必要がありますか? – Si8

2

あなたは、私は、既存のKEY_DATE列を持つ新しい列を作成し、yyyy-mm-ddd形式で保存されて

SELECT * FROM cd ORDER BY datetime(substr(date, 7, 4) || '-' || substr(date, 4, 2) || '-' || substr(date, 1, 2)) 
+0

この場合の 'date'は' KEY_DATE'列ですか? – Si8

+0

また、上記の 'KEY_DATE 'を' datetime(substr(KEY_DATE、7、4)||' - '|| substr(KEY_DATE、4,2)||' - '|| substr 、2)) '? – Si8

+0

はこれを試しました: 'Cursor cursor = db.rawQuery(" SELECT * FROM "+ TABLE_CHAL +" WHERE "+ KEY_ACTIVE +" = "" + active.trim()+ "ORDER BY" + datetime(substr(KEY_DATE、7 、4)|| ' - ' || substr(KEY_DATE、4,2)|| ' - ' || substr(KEY_DATE、1,2))+ "ASC"、null);そして、 'datetime'と' substr'にもあります – Si8

関連する問題