如何格式化'INT_TIME'的结果,使其不显示为Time。 'mytime'是时间字段,'INT_TIME'是字符串。
procedure TForm1.ADOTable1CalcFields(DataSet: TDataSet);
ADOTable1.Fields.FieldByName('INT_TIME').asString := TimeToStr(ADOTable1.FieldByName('MYTIME').AsDateTime) ;
end;
现在,字符串显示就像时间字段(07:30:00)。 新的...
已编辑:
答案 0 :(得分:2)
您不需要INT_TIME
字段。 (顺便说一下,INT_TIME
是字符串列的可怕名称。)您可以使用AsDateTime
本身的TField
,并使用DateUtils
中的函数来检索单独的小时和分钟值。正如@TLama在他的评论中所说,如果您只使用显示值而不是使用计算字段,则可以使用OnGetText事件:
procedure TForm4.ClientDataSet1MyTimeGetText(Sender: TField; var Text: string;
DisplayText: Boolean);
begin
Text := Format('%d%s%d', [HourOf(Sender.AsDateTime),
FormatSettings.DecimalSeparator,
MinuteOf(Sender.AsDateTime)]);
end;