0

我试图通过提供日期范围从我的 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(); 

有人对此有意见,请指导。谢谢。

4

1 回答 1

2

您需要将 Or 子句与括号一起使用:

WHERE name='....' AND (yourDateField<yourLowerDate OR yourDateField>yourHigherDate)
于 2012-05-15T15:07:55.413 回答