안녕하세여... ^^
DB는 오라클을 쓰구 있구여...
로그테이블 중에 시간이 들어가는 테이블이 있는데...
그 형식은... yyyymmddhhmmss형식으루... char형으로 들어가 있거든여...
제가 하려고 하는것은...
현재의 시간에서 -3초 한 시간 부터... 현재의 시간-3초 -XX초 사이의 시간에
(여기서 xx초는... 3~60사이의 임의의 초랍니다..)
현재의 시간이 070013 이라면...
070000 ~ 070003 사이에 발생한 데이타를 쿼리해 오는...
이런걸 하려고 하거든여...
그런데 시간 계산하는게 너무 복잡해여... =_=
(제가 초보라서 그러는 건지... 머리가 나쁜건지는 몰겠지만;;;)
procedure TForm1.Button1Click(Sender: TObject);
var nowdate : String;
ddd, aaa : integer;
begin
nowdate := FormatDateTime('yyyymmddhhmmss',Now);
ddd := StrToInt(Copy(nowdate,9,2)) * 3600 + StrToInt(Copy(nowdate,11,2)) * 60 +StrToInt(Copy(nowdate,13,2)) ;
aaa := ddd - 3;
label1.Caption := nowdate;
label5.Caption := IntToStr(ddd); // 초로 계산
label2.Caption := IntToStr(aaa); // -3초
label8.Caption := IntToStr((aaa div 3600)) + IntToStr((aaa mod 3600) div 60) + IntToStr((aaa mod 3600) mod 60); //초를 다시 시간으로 환산
end;
일케 해 봤는데...
문제는... 초를 다시 시간으로 환산할때...
그 결과가 7시 라면...
결과 값은 700으로 나오잖아여...
DB에는 070000으로 저장되어있는데...
어떻게 해야 하나여?
좋은 방법 없을까여?
도와 주세여...!_!
> 안녕하세여... ^^
>
> DB는 오라클을 쓰구 있구여...
>
> 로그테이블 중에 시간이 들어가는 테이블이 있는데...
>
> 그 형식은... yyyymmddhhmmss형식으루... char형으로 들어가 있거든여...
>
> 제가 하려고 하는것은...
>
> 현재의 시간에서 -3초 한 시간 부터... 현재의 시간-3초 -XX초 사이의 시간에
>
> (여기서 xx초는... 3~60사이의 임의의 초랍니다..)
>
> 현재의 시간이 070013 이라면...
>
> 070000 ~ 070003 사이에 발생한 데이타를 쿼리해 오는...
>
> 이런걸 하려고 하거든여...
>
> 그런데 시간 계산하는게 너무 복잡해여... =_=
>
> (제가 초보라서 그러는 건지... 머리가 나쁜건지는 몰겠지만;;;)
>
> procedure TForm1.Button1Click(Sender: TObject);
> var nowdate : String;
> ddd, aaa : integer;
> begin
> nowdate := FormatDateTime('yyyymmddhhmmss',Now);
> ddd := StrToInt(Copy(nowdate,9,2)) * 3600 + StrToInt(Copy(nowdate,11,2)) * 60 +StrToInt(Copy(nowdate,13,2)) ;
> aaa := ddd - 3;
> label1.Caption := nowdate;
> label5.Caption := IntToStr(ddd); // 초로 계산
> label2.Caption := IntToStr(aaa); // -3초
> label8.Caption := IntToStr((aaa div 3600)) + IntToStr((aaa mod 3600) div 60) + IntToStr((aaa mod 3600) mod 60); //초를 다시 시간으로 환산
> end;
>
> 일케 해 봤는데...
>
> 문제는... 초를 다시 시간으로 환산할때...
>
> 그 결과가 7시 라면...
>
> 결과 값은 700으로 나오잖아여...
>
> DB에는 070000으로 저장되어있는데...
>
>
> 어떻게 해야 하나여?
>
> 좋은 방법 없을까여?
>
> 도와 주세여...!_!
>
안녕하세요. 술친굽니다.
IntToStr((aaa div 3600)) 함수는 단순히 정수값을 가져오지요..
그래서 프로그램에서 원하는 값이 나오지 않습니다.
다음 함수를 써보세요..
FormatFloat('00', (aaa div 3600))
두자리 값으로 지정될겁니다.
좋은 프로그래밍 하세요.
술친구였습니다.