Das Datum in basiert auf 0=30.12.1899, beim SQLServer 0=1900-01-01 00:00:00.000
Caption := DateTimeToStr(0);
Select Cast(0 as dateTime)
Scheinbar wird Dein Parametertyp interpretiert als
ADOQuery1.Parameters.ParamByName('datum').DataType := ftFloat;
versuch mal was passiert wenn Du ihn setzt:
ADOQuery1.Parameters.ParamByName('datum').DataType := ftDateTime;
Delphi-Quellcode:
ADOQuery1.SQL.Text:='Update Adressen SET geboren=:datum where ID=:ID';
ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, True);
ADOQuery1.Parameters.ParamByName('datum').DataType := ftFloat; // 2 Tage Fehler
ADOQuery1.Parameters.ParamByName('datum').DataType := ftdateTime; // kein Fehler
ADOQuery1.Parameters.ParamByName('datum').Value:=now;
ADOQuery1.Parameters.ParamByName('ID').Value:=2876;
ADOQuery1.ExecSQL;