La mayoría de motores de BBDD usan el formato mm/dd/yyyy, pero hay algunos que son "inteligentes", si enviamos una fecha 31/01/2007, como no encaja en ese formato, el motor cambia el formato a dd/mm/yyyy, por tanto nuestra consulta funciona correctamente. Cuando se le pasa la fecha 07/01/2007, lo encaja en formato mm/dd y nos devuelve los datos de Julio, mientras que nosotros esperamos los de enero.
Para evitar todo tipos de inconvenientes están los parámetros; delphi usa internamente un double para representar una fecha, así que no importa el formato de fecha que usemos, no importa la configuración de windows y no importa los formatos de fecha de la unidad SysUtils.
El motor de BBDD y delphi ya se entenderán (que para algo son compatibles
).
Saludos