按日期排序不起作用

时间:2016-11-13 15:16:33

标签: java android sqlite android-sqlite

我需要按日期过滤数据库中的信息,但它不起作用。我的数据库中日期的格式是这样的

  

11月10日星期四00:00:00 GMT + 00:00 2016

数据库查询是:

public Cursor ObterTodasAsReceitasPorUsuario (String cod_usuario){
        db = this.getReadableDatabase();
        String tp_lancamento = "r";
        String sql = String.format("SELECT * FROM %s WHERE %s=? AND %s=? ORDER BY DATE(%s) DESC",
                Tabelas.LANCAMENTO, Lancamento.COD_USUARIO, Lancamento.TP_LANCAMENTO, Lancamento.DATA);
        String[] selectionArgs = {cod_usuario, tp_lancamento};
        Cursor cursor = db.rawQuery(sql, selectionArgs);
        Log.d("Despesas", "Despesas");
        DatabaseUtils.dumpCursor(cursor);
        db.close();
        return cursor;
    }

订购后这是result。关于如何解决这个问题的任何建议?

1 个答案:

答案 0 :(得分:2)

我建议您按日期格式化日期:

Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/YYYY");
String date = format.format(calendar.getTime());

格式化日期后,将其插入数据库。然后,使用以下查询对日期进行排序:

SELECT * FROM Table ORDER BY date(dateColumn)

有关格式化日期的更多方式,请参阅this发布。