var
i:string;
j:string;
h:string;
begin
adodataset1.close;
adodataset1.commandtext:='select from_unixtime(unix_timestamp()) as ll';
adodataset1.open;
i:=adodataset1.FieldByName('ll').asstring;
j:=formatdatetime('yyyy-mm-dd hh:mm:ss',now());
h:=i-j;
label5.Caption:=h;
end;
运行时提示 2005-04-18 10:08:22 不是一个有效的时间;
请高手帮忙!

解决方案 »

  1.   

    你都asstring还指望他是个“有效的时间”...
      

  2.   

    var
        i,j:TDateTime;
        h:string;
    begin
        adodataset1.close;
        adodataset1.commandtext:='select from_unixtime(unix_timestamp()) as ll';
        adodataset1.open;
        i:=adodataset1.FieldByName('ll').asDateTime;
        j:=now();
        h:=FormatDateTime('yyyy-mm-dd hh:nn:ss',i-j);
        label5.Caption:=h;
    end;
    ----------------->>>>>>>>>>>>>>>>>>>>>>
      

  3.   

    var
        i,j:TDateTime;
        h:string;
    begin
        adodataset1.close;
        adodataset1.commandtext:='select from_unixtime(unix_timestamp()) as ll';
        adodataset1.open;
        i:=adodataset1.FieldByName('ll').asDateTime;
        j:=now();
        h:=FormatDateTime('hhhh-mm-dd hh:nn:ss',i-j);
        label5.Caption:=h;
    end;
      

  4.   

    只有Datetime 类型的变量才可以相减。
    不要FormatDatetime Now
    直接使用 now 就可以了。