2011-08-27 48 views
0

我必須做一個查詢,但我有日期的問題becase的結構27/08/2011這個查詢代碼:安卓:帶有日期

dt="27/08/2011"; 
db.query(TABLE,null,mydata + "=" + dt,null,null,null,null); 

的問題是,光標總是0.我認爲這是數據結構,因爲如果我查詢其他它工作正常

回答

2

您的日期未被引用,所以SQLite將解釋27/08/2011作爲一個數學表達式,並將其替換爲0(27的整除值除以8除以2011)。你可以自己引用它:

db.query(TABLE, null, mydata + "=" + "'" + dt + "'", null, null, null, null); 

或者更好,use a placeholder

db.query(TABLE, null, mydata + "= ?", new String[] { dt }, null, null, null); 

切換到ISO 8601日期格式也將是一個不錯的主意,以避免在日期可能基於地區的不確定性:

String dt = "2011/08/27"; 
Cursor c = db.query(TABLE, null, mydata + "= ?", new String[] { dt }, null, null, null); 
+0

謝謝你的回答。如果我想用你的方法選擇mydata和myid,代碼如何? – Mimmo

+0

@Mimmo:'mydata'是列名而不是字符串變量?如果是,那麼'db.query(TABLE,new String [] {「mydate」,「myid」},「mydata =?」,...' –

+0

這是對的 String dt =「2011/08/27「; String n =」ciao「; 光標c = db.query(TABLE,null,mydata +」=?&&「+ myid +」=?「,new String [] {dt,n},null, null,null); – Mimmo