Yo pasaría las horas por parámetros también (es más ele
fante).
Siempre que deciis que no os da problema usais un formato de fecha americano, y ese es el que toma por defecto los motores (pero podría cambiar).
Al usar parámetros nos quitamos de problemas.
Otro posible problema, es que AsDate también puede estar pasando la hora (ya que Tdate y Tdatetime viene a ser lo mismo), aconsejo usar:
Código Delphi
[-]
ParamByName('FechaAyer').AsDate := trunc(MI_FECHA-1);
ParamByName('FechaHoy').AsDate := trunc(MI_FECHA);
ParamByName('FechaMana').AsDate := trunc(MI_FECHA+1);
como sabemos, un Datetime es un Extended que guarda la hora en la parte fracionaria, quitándola, nos aseguramos de no pasarle hora ninguna en ese parámetro.
Saludos