0
我必須做一個查詢,但我有日期的問題becase的結構27/08/2011這個查詢代碼:安卓:帶有日期
dt="27/08/2011";
db.query(TABLE,null,mydata + "=" + dt,null,null,null,null);
的問題是,光標總是0.我認爲這是數據結構,因爲如果我查詢其他它工作正常
我必須做一個查詢,但我有日期的問題becase的結構27/08/2011這個查詢代碼:安卓:帶有日期
dt="27/08/2011";
db.query(TABLE,null,mydata + "=" + dt,null,null,null,null);
的問題是,光標總是0.我認爲這是數據結構,因爲如果我查詢其他它工作正常
您的日期未被引用,所以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);
謝謝你的回答。如果我想用你的方法選擇mydata和myid,代碼如何? – Mimmo
@Mimmo:'mydata'是列名而不是字符串變量?如果是,那麼'db.query(TABLE,new String [] {「mydate」,「myid」},「mydata =?」,...' –
這是對的 String dt =「2011/08/27「; String n =」ciao「; 光標c = db.query(TABLE,null,mydata +」=?&&「+ myid +」=?「,new String [] {dt,n},null, null,null); – Mimmo