Q&A

  • 고수님들...스트링형 타임의 계산..
sSql := 'select Id, InTime, Date'

+ ' From Pay'

+ ' where id = "'

+ sId+ '" and Date = "'+sDate+'"';



Query1.Sql.Clear;

Query1.Sql.Add(sSql);

Query1.Open;



if Query1.RecordCount <> 0 then

Begin

if trim(sId) = Query1.FieldByName('Id').AsString then

Begin

sOutTime := copy(TimeToStr(Time), 1, 4);

sTotal := TimeToStr(StrToTime(sOutTime) - StrToTime(sInTime)- 1/24);

sSql := 'Update Pay set OutTime = "'+sOutTime+'", Total = "'+sTotal+'"'

+ ' WHERE ID = "'+ sId +'" '

+ ' and Date = "'+ sDate +'" ';



Query1.sql.clear;

Query1.sql.Add(sSql);

Query1.ExecSQL;

end;

end;



위의 코드는 pay라는 테이블에서..

출근시간(Intime)을 검색 된 아이디에서 불러와

퇴근시간(outtime)과 계산을 해서 총 일한 시간을 구하는 것인데요~



sTotal := TimeToStr(StrToTime(sOutTime) - StrToTime(sInTime)- 1/24); 에서

제대로 된 값이 들어가지 않는것 같고요~



저 토탈 값이 구해지면..

시간당 2500원의 값을 곱해서 월급을 계산해야 하는데...

값이 나오질 않습니다.. --;



어떻게 해야 되나요~

부탁합니다 고수님들...





1  COMMENTS
  • Profile
    바다를향해 2001.05.21 21:23
    이 상황에선 변수에 값을 받을때 잘 받아 지나....그것부터 확인 해야져



    다시말해

    sOutTime := copy(TimeToStr(Time), 1, 4);

    이 부분에서 sOutTime변수에 제데로된 시간값이 안들어 간다는 얘깁니다.

    제데로 시간값을 문자열로 받을려면 FormatDateTime함수를 사용 하시져

    sOutTime := FormatDateTime('hh:mm', TDateTime(Time));

    위와같이 하게 되면 순수하게 원하는 시간하고 분만 나오게 되져....

    아니면

    sOutTime := copy(TimeToStr(Time), 1, 5);

    일케 하시던가여....^^



    진짜초보 wrote:

    > sSql := 'select Id, InTime, Date'

    > + ' From Pay'

    > + ' where id = "'

    > + sId+ '" and Date = "'+sDate+'"';

    >

    > Query1.Sql.Clear;

    > Query1.Sql.Add(sSql);

    > Query1.Open;

    >

    > if Query1.RecordCount <> 0 then

    > Begin

    > if trim(sId) = Query1.FieldByName('Id').AsString then

    > Begin

    > sOutTime := copy(TimeToStr(Time), 1, 4);

    > sTotal := TimeToStr(StrToTime(sOutTime) - StrToTime(sInTime)- 1/24);

    > sSql := 'Update Pay set OutTime = "'+sOutTime+'", Total = "'+sTotal+'"'

    > + ' WHERE ID = "'+ sId +'" '

    > + ' and Date = "'+ sDate +'" ';

    >

    > Query1.sql.clear;

    > Query1.sql.Add(sSql);

    > Query1.ExecSQL;

    > end;

    > end;

    >

    > 위의 코드는 pay라는 테이블에서..

    > 출근시간(Intime)을 검색 된 아이디에서 불러와

    > 퇴근시간(outtime)과 계산을 해서 총 일한 시간을 구하는 것인데요~

    >

    > sTotal := TimeToStr(StrToTime(sOutTime) - StrToTime(sInTime)- 1/24); 에서

    > 제대로 된 값이 들어가지 않는것 같고요~

    >

    > 저 토탈 값이 구해지면..

    > 시간당 2500원의 값을 곱해서 월급을 계산해야 하는데...

    > 값이 나오질 않습니다.. --;

    >

    > 어떻게 해야 되나요~

    > 부탁합니다 고수님들...

    >

    >