2012-05-15 3 views
0

이상하게 잘못된 것이다. I 3 개 필터논리 연산자 SQL 쿼리 내가 날짜 범위를 제공하여 내 SQLite 데이터베이스의 결과를 가져 오기 위해 노력하고

에게 제공하여 결과를 가져올 수 있었다
 1. Name (textfield1) 
     2. From (date)(textfield2) 
     3. To (date)(textfield3) 

I은 ​​이제에서 다음 입력을 입력하면 다음 코드

 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(); 

을 사용하여 테이블의 Temp 형태에서 촬영이 필드 값을 삽입하고 위의 필터

   1.Ricky 
       2.01/02/2012 
       3.28/02/2012 

그것은이 날짜 사이의 날짜를 가져옵니다 내 양식을 완벽하게 다양하다. 하지만 지금은 제공된이 두 날짜 범위보다 아래에있는 값을 삽입하고 싶습니다.

enter image description here

나는이 오류가 아래의 코드는 항목이 01/02보다 적은 날짜를 가지고 찾을 수 있습니다

입니다 단순히 질수도있는 result.I을 표시 나던 code.But 사용하여 시도했다 2012 년 2 월 28 일과 2012 년 2 월 28 일 초과

  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(); 

아무도 소리가 나지 말고, 안내하십시오. 감사합니다.

+1

데이터베이스는 문자열 조작을 할 수있는 잘못된 장소입니다. Sqllite는 datetime 유형을 지원합니다. –

답변

2

당신은 괄호와 함께 또는 절을 사용해야합니다

WHERE name='....' AND (yourDateField<yourLowerDate OR yourDateField>yourHigherDate) 
+0

고마워요. 괄호를 넘기는 어리석은 실수는 나를 너무 오랫동안 숙고하게 만들었습니다. 다시 감사드립니다. – techie

+0

@techie, 답변으로 문제가 해결되면 대답을 승인으로 표시하지 않으시겠습니까? 그것은 다른 사람들을 도울 것입니다. – Rupak

+0

물론 답변을 upvoted있다. – techie