시간을 이용한 검색을 하려고 하거든요...
몇시부터 몇시 사이에... 일어난 트랜잭션을 보여 주라... 뭐 이런거...
테이블 내에 시간을 저장하고 있는 필드 이름은 REQRECVHMS 이고, char형식으로
hhmmss로 저장되어 있습니다.
이걸 검색하기 위한 쿼리문으로...
with DataMod.QryLog do
begin
...
SQL.Add('and (REQRECVHMS between :btime and :etime)');
...
procedure TF_TranStat.BtnViewClick(Sender: TObject);
...
try
DataMod.QryLog.ParamByName('bTime').AsString := Timebegin.EditText;
except
DataMod.QryLog.ParamByName('bTime').AsString := '000000';
end;
try
DataMod.QryLog.ParamByName('eTime').AsString := Timeend.EditText;
except
DataMod.QryLog.ParamByName('eTime').AsString := '235959';
end;
....
일케 코딩을 해 봤거든요...
시간을 입력 받는 Timebegin과 Timeend는 EditMaskBox이구요...
그런데 문제는...
시작시간은 제대로 검색이 되는데... 끝나는 시간은 시간 + 1시간 이렇게 검색이 되는 거랍니다...!_!
9시 부터 10시까지 발생된 데이터를 조사하라... 라고[09:00:00 - 10:00:00]
일케 입력을 했는데...
검색되어 온 값은 09:00:00부터 11:00:00시에 일어난 데이타를 찾아 온다는 것이죠...
제 코딩에 문제가 있는 건가요?
참고로 데이타 베이스는 오라클8을 쓰고 있답니다...
도와주세요...!_!
날씨가 많이 따뜻해 졌네요...^^
어제 비가 와서 하늘도 깨끗해 졌구요...
이눔의 프로그램만 말썽을 안부린다면...
참 행복한 오후가 될것 같은데...=_=
여러분들은 행복한 오후 보내세요...^^
> 시간을 이용한 검색을 하려고 하거든요...
>
> 몇시부터 몇시 사이에... 일어난 트랜잭션을 보여 주라... 뭐 이런거...
>
> 테이블 내에 시간을 저장하고 있는 필드 이름은 REQRECVHMS 이고, char형식으로
>
> hhmmss로 저장되어 있습니다.
>
> 이걸 검색하기 위한 쿼리문으로...
>
> ....
>
> 일케 코딩을 해 봤거든요...> with DataMod.QryLog do
> begin
> ...
> SQL.Add('and (REQRECVHMS between :btime and :etime)');
> ...
> procedure TF_TranStat.BtnViewClick(Sender: TObject);
> ...
> try
> DataMod.QryLog.ParamByName('bTime').AsString := Timebegin.EditText;
> except
> DataMod.QryLog.ParamByName('bTime').AsString := '000000';
> end;
> try
> DataMod.QryLog.ParamByName('eTime').AsString := Timeend.EditText;
> except
> DataMod.QryLog.ParamByName('eTime').AsString := '235959';
> end;
>
> 시간을 입력 받는 Timebegin과 Timeend는 EditMaskBox이구요...
>
> 그런데 문제는...
>
> 시작시간은 제대로 검색이 되는데... 끝나는 시간은 시간 + 1시간 이렇게 검색이 되는 거랍니다...!_!
>
> 9시 부터 10시까지 발생된 데이터를 조사하라... 라고[09:00:00 - 10:00:00]
>
> 일케 입력을 했는데...
>
> 검색되어 온 값은 09:00:00부터 11:00:00시에 일어난 데이타를 찾아 온다는 것이죠...
>
> 제 코딩에 문제가 있는 건가요?
>
> 참고로 데이타 베이스는 오라클8을 쓰고 있답니다...
>
> 도와주세요...!_!
>
>
> 날씨가 많이 따뜻해 졌네요...^^
>
> 어제 비가 와서 하늘도 깨끗해 졌구요...
>
> 이눔의 프로그램만 말썽을 안부린다면...
>
> 참 행복한 오후가 될것 같은데...=_=
>
> 여러분들은 행복한 오후 보내세요...^^
> with DataMod.QryLog do
> begin
> ...
> SQL.Add('and (REQRECVHMS between :btime and :etime)');
> ...
> procedure TF_TranStat.BtnViewClick(Sender: TObject);
> ...
> try
> DataMod.QryLog.ParamByName('bTime').AsString := Timebegin.EditText;
> except
> DataMod.QryLog.ParamByName('bTime').AsString := '000000';
> end;
> try
> DataMod.QryLog.ParamByName('eTime').AsString := Timeend.EditText;
> except
> DataMod.QryLog.ParamByName('eTime').AsString := '235959';
> end;
** between 은 between 시간1 and 시간2
** 라고 해야 제대로 된 값이 나올 수 있으리라 생각됩니다.
** 직접 해보지는 않았지만 아마도 다음 코드를 보시면 도움이 되지 않을까 싶네요
qry_opr_evnt_p3.Active := False ;
qry_opr_evnt_p3.SQL[20] :=
' AND (TO_DATE(A.USE_DT) BETWEEN ' + ':pa_f_date AND :pa_t_date )' ;
qry_opr_evnt_p3.ParamByName('pa_f_date').AsDate :=
dtp_date_from_p3.Date ;
qry_opr_evnt_p3.ParamByName('pa_t_date').AsDate :=
dtp_date_to_p3.Date ;
qry_opr_evnt_p3.Active := True ;
> SQL.Add('and (REQRECVHMS between :btime and :etime)');
REQRECVHMS가 문자포맷이라면 to_date(REQRECVHMS) 으로 하면 될것 같구요
> DataMod.QryLog.ParamByName('bTime').AsString := Timebegin.EditText;
DataMod.QryLog.ParamByName('bTime').AsDate := StrToDate(Timebegin.EditText);
하면 되지 않을까 싶네요..