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