Una opción que me gusta un poco más es usar parámetros:
Te olvidas de esta manera de tener que dar formato a los campos (QuotedStr, DateTimeToStr, etc...
Código Delphi
[-]
procedure TForm1.FormShow(Sender: TObject);
var
Dia: String;
begin
Dia:=DateTimeToStr(Now);
with DM.IBQuery1 do
begin
if Active=True then Active:=False;
UnPrepare;
SQL.Clear;
SQL.Add('SELECT DNI1, LETRA_NIF, APELLIDO_1, APELLIDO_2, NOMBRE, MATRICULA, CENTRO, OBJETO, DNI2, DIA_SALIDA, DIA_ENTRADA');
SQL.Add('FROM EXTERNOS_DNI, MOV_EXTERNOS_DNI');
SQL.Add('WHERE DNI1=DNI2 AND DIA_ENTRADA=?DIA_ENTRADA');
SQL.Add('ORDER BY DNI1');
Params.ByName['DIA_ENTRADA'].AsDateTime := Dia;
Prepare;
if Active=False then Active:=True;
Open;
end;
end;