2016-11-13 119 views
1

我需要按日期篩選數據庫中的信息,但不起作用。我的數據庫中日期的格式是這樣按日期排序不起作用

週四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。有關如何解決這個問題的任何建議?

+3

它不起作用?你有錯誤嗎?如果是這樣?訂單是否意外?如果是這樣,怎麼樣? –

+0

感謝您的迴應,它的工作原理沒有顯示任何錯誤,問題是沒有按日期對記錄進行排序,我上傳了一張圖片來顯示。 –

+0

是否有必要在上面提到的形式中使用日期?你不能只是做'dd/mm/yyyy'然後對日期進行排序嗎?這將使排序更容易一些。 – Razor

回答

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後。