Q&A

  • Query Active 비교문 에러...!


자꾸 질문을 올리네요..!(별것도 아닌것 같은데... 차라리 Syntax에러나 나지 흐흑..)



우선 소스는 다음과 같습니다.





Query1.SQL.Add('where nalja >= :Sdate and nalja <= :Edate');

Query1.SQL.Add('where sangho = :Sangho2 and

(nalja >= :Sdate and nalja<= :Edate)');

Query1.ParambyName('Sangho2').AsString := edtSangho.text;

Query1.ParambyName('Sdate').AsDateTime := Sdate.date; // DateTimePicket 컴포넌트

Query1.ParambyName('Edate').AsDateTime := Edate.date; // "



문제는 위와 같이 쿼리를 Active 시키면 Grid에 나타나는 데이터가



시작(즉, Sdate)값이 꼭 선택한 값보다 하루가 많은 것 부터 출력이 됩니다.

(만일 8월 1일을 선택하면 8월 2일 데이터부터 출력이 됩니다.. ^^:)



마지막(즉, Date)값은 제대로 출력이 됩니다. 왜 이럴까요...? Help Me...!





1  COMMENTS
  • Profile
    stoney 2001.08.27 18:48
    nalja라는 테이블의 필드가 데이트형으로 잡혀 있을경우 시간까지 같이 들어가면 비교시 그렇게 나오더라구요..



    오라클인 경우는 nalja 필드를 TO_DATE로 시간부분을 짤라서 비교해 주면 제대로 비교됩니다..



    이지컴 wrote:

    >

    > 자꾸 질문을 올리네요..!(별것도 아닌것 같은데... 차라리 Syntax에러나 나지 흐흑..)

    >

    > 우선 소스는 다음과 같습니다.

    >

    >

    > Query1.SQL.Add('where nalja >= :Sdate and nalja <= :Edate');

    > Query1.SQL.Add('where sangho = :Sangho2 and

    > (nalja >= :Sdate and nalja<= :Edate)');

    > Query1.ParambyName('Sangho2').AsString := edtSangho.text;

    > Query1.ParambyName('Sdate').AsDateTime := Sdate.date; // DateTimePicket 컴포넌트

    > Query1.ParambyName('Edate').AsDateTime := Edate.date; // "

    >

    > 문제는 위와 같이 쿼리를 Active 시키면 Grid에 나타나는 데이터가

    >

    > 시작(즉, Sdate)값이 꼭 선택한 값보다 하루가 많은 것 부터 출력이 됩니다.

    > (만일 8월 1일을 선택하면 8월 2일 데이터부터 출력이 됩니다.. ^^:)

    >

    > 마지막(즉, Date)값은 제대로 출력이 됩니다. 왜 이럴까요...? Help Me...!

    >

    >