Wop!
Intenta esto:
Código Delphi
[-]
sql.Add('Update tabla Set data_final = data_final');
ParamByName('pdata_final').AsDateTime := data;
Teóricamente, si tratas la variable como de tipo DateTime, no es necesario hacer el cast (de hecho creo que por eso podría estar fallando).
Tambien puedes probar a pasarle una hora distinta de 00:00:00, a ver qué pasa