一个简单的DBgrid和Adoquery的问题
问题描述:
一个Access数据表里,有teim1 time2 ,box,字段,在DBGrid要计算出time1和time2的时间差,如图
我怎么在查询按钮时候,即能显示出这个表里所有字段还可以计算出剩余时间=time1和time2的时间差呢?剩余时间在数据表里没有这个字段的。
procedure TForm1.btn1Click(Sender: TObject);
var
d: string;
begin
d := 'd';
qry1.SQL.Clear;
qry1.SQL.Text:=('SELECT DATEDIFF('+QuotedStr(d)+', starttime, endtime) as DifTime FROM TBsupp');
qry1.Open;
if qry1.SQL.Count>0 then
begin
tx1.Text := qry1.Fieldbyname('DifTime').AsString;
dbgrd1.Columns[4].FieldName:=qry1.Fieldbyname('DifTime').AsString;
qry1.Next
end;
end;
请大牛指点一下! DBGRID
[解决办法]
其实,楼主只要把时间差当做一个列来处理就好了。
SQL.Text := 'SELECT A.*, DATEDIFF(''d'', A.STARTTIME, A.ENDTIME) AS DifTime FROM TBsupp';然后在DBGrid中做好关联,时间差字段的FieldName设置为你的列别名—ifTime)