ASC
を適用するようにクエリを変更したいと思います。これは、日付形式を変更し、DESC
モードで正しく並べ替えるクエリです。日付形式のsqliteでのクエリのキャスト(int型)
public Cursor get(String Filter1, String Order1)
{
String Sort="data";
if (Order1=="data")
{
Sort="substr(data, 7, 4), substr(data, 4, 2), substr(data, 1, 2)";
}
else {Sort="players";}
try
{
String sql3 ="SELECT rowid _id, * FROM players"
+ " WHERE players like ('"+ Filter1 +"')"
//+ " ORDER BY "+ Sort +"";
+ " ORDER BY "+ Sort +"";
Cursor mCur = mDb.rawQuery(sql3, null);
if (mCur!=null)
{
mCur.moveToNext();
}
return mCur;
}
catch (SQLException mSQLException)
{
Log.e(TAG, "getGiocatoriTutti >>"+ mSQLException.toString());
throw mSQLException;
}
終わりASC
またはDESC
を追加することは著作ません。
ORDER BY "+ Sort +" ASC";
変更するには:
Sort="cast (substr(date,7,4) as int) ASC"
のみ正しく年によってソートします。
私は
Sort="cast (substr(date,7,4), substr(date 4,2), substr(date 1,2) as int) ASC"
を試してみたが、右sintaxではありません。
日ASC' BY '使用中... ORDER間違っているのですか?なぜそれをINTEGERにキャストしたいのですか?正しいフォーマット(YYYY-MM-DD)を使用している場合、TimeStringはそのままソート可能です –
データベースには、日付がdd/mm/yyyy形式で保存されています。そして、私はsubstrを使ってyyyymmdd形式に変更しようとしていました....しかし、ASCまたはDESCを加えても効果はありません – lucignolo
'データベース内の日付がdd/mm/yyyy形式で保存されています。 **、then。See https://sqlite.org/lang_datefunc.html –