我试图通过提供日期范围从我的sqlite数据库中获取结果。 我已经能够通过提供3个过滤器来获取结果
1. Name (textfield1)
2. From (date)(textfield2)
3. To (date)(textfield3)
我使用以下代码
将从表单中获取的这些字段值插入到表temp中 Statement statement6 = db.createStatement("INSERT INTO Temp(date,amount_bill,narration) select date,amount,narration from Bills where name=\'"+TextField1.getText()+"\' AND substr(date,7)||substr(date,4,2)||substr(date,1,2) <= substr (\'"+TextField3.getText()+"\',7)||substr (\'"+TextField3.getText()+"\',4,2)||substr (\'"+TextField3.getText()+"\',1,2) AND substr(date,7)||substr(date,4,2)||substr(date,1,2) >= substr (\'"+TextField2.getText()+"\',7)||substr (\'"+TextField2.getText()+"\',4,2)||substr (\'"+TextField2.getText()+"\',1,2) ");
statement6.prepare();
statement6.execute();
statement6.close();
现在,如果我在表单中为上述过滤器输入以下输入
1.Ricky
2.01/02/2012
3.28/02/2012
完美地获取这些日期范围之间的日期。 但现在我想插入低于和高于这两个日期范围的值。
我已经尝试过使用这段代码。但它没有显示任何结果。我只是想不出错误在哪里
以下代码用于查找日期小于01/02/2012且大于28/02/2012的条目。
Statement statementVII = db.createStatement("INSERT INTO Temp5(date,amount_rec,narration) select date,amount,narration from Bills where name=\'"+TextField1.getText()+"\' AND substr(date,7)||substr(date,4,2)||substr(date,1,2) < substr (\'"+TextField2.getText()+"\',7)||substr (\'"+TextField2.getText()+"\',4,2)||substr (\'"+TextField2.getText()+"\',1,2) AND substr(date,7)||substr(date,4,2)||substr(date,1,2) > substr (\'"+TextField3.getText()+"\',7)||substr (\'"+TextField3.getText()+"\',4,2)||substr (\'"+TextField3.getText()+"\',1,2)");
statementVII.prepare();
statementVII.execute();
statementVII.close();
有人发出声音,请指导。谢谢。
答案 0 :(得分:2)
您需要将Or子句与括号一起使用:
WHERE name='....' AND (yourDateField<yourLowerDate OR yourDateField>yourHigherDate)