tempint:=integer(Tdate(tempd1)-Tdate(tempd2));(这个转换的语法我不太清楚:()可能是Tdatetime和Tdate的区别问题。如果以秒算,会不会溢出?

解决方案 »

  1.   

    procedure .......................
    var tempD1,tempd2: TDate;
        tempint:integer;
    begin
       with  formborrow.ADOQuery1 do
       begin
       close;
       commandtext:='select datediff(day,borrowdate,returndate) as diffday from <tablename>';
       open;
       tempint:=fieldbyname('diffday').value;
    end;
    或者
    procedure .......................
    var tempD1,tempd2: TDate;
        tempint:integer;
    begin
       with  formborrow.ADOQuery1 do
       begin
       tempd1:=fieldbyname('returndate').asfloat;
       tempd2:=fieldbyname('borrowdate').asfloat;
       tempint:=integer(tempd1-tempd2);
      ....
    end;
      

  2.   

    错了,var要改一下。不是tdate
    procedure .......................
    var tempD1,tempd2: real;
        tempint:integer;
    begin
       with  formborrow.ADOQuery1 do
       begin
       tempd1:=fieldbyname('returndate').asfloat;
       tempd2:=fieldbyname('borrowdate').asfloat;
       tempint:=integer(tempd1-tempd2);
      ....
    end;