1월 1일 09:00 부터 2월 1일 09:00
까지 데이터를 구해야 하는데....
이걸 다음과 같이 sql문으로 작성하면.. 맞는건지요..?
테스트 해볼 자료를 만들고 테스트하기엔.. 프로그램 수정해야 할 부분이
많아서 시간이 없고... 혹 아시는분 알려주세요..
생략
qryData.SQL.ADD('select * from Data where Date1 >= :D1 and Time1 >= :D2 and Date1 =< :D3 and TIme2 < :D4')
ParamByName('D1').AsDate := '03-01-01';
ParamByName('D2').AsDate := '09:00:00';
ParamByName('D3').AsDate := '03-02-01';
ParamByName('D4').AsDate := '09-00-00';
생략
원하시는 결과를 얻을 수 없답니다.
그 원인은
Field(Attribute)의 의미가 정확하지 않아 꼬집어 말하긴 힘들지만....
한쪽 Field에 한 조건만을 주기 때문이라 일축할 수 있겠네요.
즉,
Date1, Time1을 A
Date2, Time2를 B라고 하면
A > 100 and B < 200
문제가 눈에 보이시죠(안 보이심 안되는데...., 글로 설명하기엔... ^^;)~~
글구, Date1, Time1을 2개 Field(Attribute)로 나눠서 비교하면
Date1 < Date2, Date1 = Date2, Date1 > Date2
에따라 시간 비교 방법이 달라져야 하므로
날짜에 관계없는 시간대 정보를 구하는게 아니라면
두 Field를 통합해서 비교하심이 좋을 듯 하네요.
에궁!
말로 설명하려니 넘 어렵네요~ 참고만 하시구여~
즐푸하세요.