两个问题:
1。有两字段(设为time_1,time_2)在access中格式为小数点两位。
即可能有值:0 ;1.01.13.1...等等。现想在dbgrid中显示为诸如:00:00 ,01:01
等时间格式
如果还有一个字段(设为day)用于存储是第几天到。,day的值为0到5之间的整数,为o表示当天,为1表示次日,为2表示第三天。我想在dbgrid中显示值为象“次日02:12"的格式,方法是通过取time_2的值。然后根据day的值(转换)来显示。。
要求不另建表不改变原有数据本题60分
2。有两表:设为a,b本题40分
a表: b表
------ ---------------------
a_id distance price
1 0 10
2 20 20
3 45 50
4 75 80
5 31 100
6 10 150
7 32 200
要求结果为:
--------------------------------------
a_id distance price
1 0 10
2 20 20
3 45 50
4 75 80
5 31 50
6 10 10
7 32 50
即每条记录中,
先取distance值<=b表的price
然后,取b表中最小的值。
怎么完成?
1。有两字段(设为time_1,time_2)在access中格式为小数点两位。
即可能有值:0 ;1.01.13.1...等等。现想在dbgrid中显示为诸如:00:00 ,01:01
等时间格式
如果还有一个字段(设为day)用于存储是第几天到。,day的值为0到5之间的整数,为o表示当天,为1表示次日,为2表示第三天。我想在dbgrid中显示值为象“次日02:12"的格式,方法是通过取time_2的值。然后根据day的值(转换)来显示。。
要求不另建表不改变原有数据本题60分
2。有两表:设为a,b本题40分
a表: b表
------ ---------------------
a_id distance price
1 0 10
2 20 20
3 45 50
4 75 80
5 31 100
6 10 150
7 32 200
要求结果为:
--------------------------------------
a_id distance price
1 0 10
2 20 20
3 45 50
4 75 80
5 31 50
6 10 10
7 32 50
即每条记录中,
先取distance值<=b表的price
然后,取b表中最小的值。
怎么完成?
a,b where a.distance<b.price
group by a.id,a.distance第二个这样试试
function Get2BitStr(ADouble:Double):String;
var
I:Integer;
S:String;
begin
Result:='';
S:=FloatTOStr(ADouble);
for I:=0 to 2-Length(S)-1 do
Result:='0'+Result;
Result:=Result+S;
end;
var
ADouble:Double;
S1,S2:String;
begin
ADouble:=1.23;
S1:=Get2BitStr(Int(ADouble));
S2:=Get2BitStr((ADouble-Int(ADouble))*100);
Result:=Format('%s:%s',[S1,S2]);{这就是你要的结果}
end;
你可以在OnCalcFields事件中,加入本函数进行计算.
function DoubleToTimeStr(AValue:Double):String;
function Get2BitStr(ADouble:Double):String;
var
I:Integer;
S:String;
begin
Result:='';
S:=FloatTOStr(ADouble);
for I:=0 to 2-Length(S)-1 do
Result:='0'+Result;
Result:=Result+S;
end;
var
S1,S2:String;
begin
S1:=Get2BitStr(Int(AValue));
S2:=Get2BitStr((AValue-Int(AValue))*100);
Result:=Format('%s:%s',[S1,S2]);{这就是你要的结果}
end;DoubleToTimeStr(1.23)的结果为01:23