En lugar de DateToStr, debes utilizar FormatDateTime para darle el formato que sí acepte MySQL, tambien debes de tomar en cuenta que podrían necesitarse comillas o símbolos para encerrar la fecha de acuerdo a MySQL...
En SQL Server se requieren comillas para encerras fechas:
Código Delphi
[-]
SQL := 'Set @Date = ' + QuotedStr(FormatDateTime('yyyy-mm-dd hh:mm:ss', Now));
esto resulta en:
Código:
Set @Date = '2010-10-12 12:47:59'
No recuerdo en MySQL pero creo que debería ser #2010-10-12#
Para mi la mejor opción sería Utilizar parámetros, con eso no necesitas de formatos y conversiones, ya que delphi lo hace solo:
Código Delphi
[-]
with Query do begin
...
SQL.Clear;
SQL.Add('Set @Date = :ADateValue');
ParamByName('ADateValue').AsDateTime := Now;
...
end;