Mirror

How to do date math on calculated fields (Views: 29)


Problem/Question/Abstract:

How to do date math on calculated fields

Answer:

When doing date math on calculated fields, it is important to ensure that all values being used are properly matched as to type. The double method (not in the docs) casts the value to a useable type. In the following method, d1 and d2 (part of table1) can be of either date or dateTime type and d3 is an integer field.

procedure TForm1.Table1CalcFields(DataSet: TDataset);
var
  t1, t2: TDateTime;
begin
  table1d1.asDateTime := Date + 2; {or table1d1.value := date + 2;}
  table1d2.asDateTime := Date - 2;
  t1 := table1d1.asDateTime;
  t2 := table1d2.asDateTime;
  table1d3.asInteger := trunc(double(t1) - double(t2));
end;

<< Back to main page