2014-04-09 108 views
0

我試圖從SQLite數據庫中恢復一些日期比今天少的數據。我從日曆天,它不會得到預期的結果:Android SQLite查詢這一天的月份

Calendar cal = Calendar.getInstance(); 
    int dayofmonth = cal.get(Calendar.DAY_OF_MONTH); 
String sql = "SELECT SUM(filed1) FROM Table1 WHERE "+Table1.DATE+"<= '%"+dayofmonth+"'"; 
+1

表的結構是什麼? SQL日期格式中的Table1.Date列? – Rarw

+0

是的格式是:「YYYY-MM-DD」 – user2847219

回答

4

由於數據的格式爲YYYY-MM-DD即日期組件從最顯著被勒令至少顯著和補零,您可以使用在此處進行常規字符串比較。

首先以與今天相同的格式創建字符串,例如,

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
String today = sdf.format(new Date()); 

然後在SQL中使用該字符串,例如,

String sql = ... " WHERE " + Table1.DATE + " < ?"; 
String[] bindArgs = new String[] { today }; 
Cursor c = db.rawQuery(sql, bindArgs); 
+0

你能幫我解決這個問題嗎?謝謝 [鏈接](https://stackoverflow.com/questions/22975593/android-strange-result-from-sqlite) – user2847219