Ver Mensaje Individual
  #3  
Antiguo 28-11-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 24
guillotmarc Va por buen camino
Hola.

En realidad es muy probable que en la base de datos las fechas no estén guardadas ni en formato mm/dd/yyyy ni en dd/mm/yyyy, sinó que simplemente estarán almacenadas como un número entero. Aunque eso depende de cada servidor o base de datos que utilizes.

Cuando consultas los datos, los ves en formato dd/mm/yyyy porqué la aplicación al mostrarlos, al saber que són de tipo fecha los convierte al formato de fecha especificado en la configuración regional del ordenador.

Es muy habitual que en una sentencia le tengas que pasar los datos en el formato inglés mm/dd/yyyy. Puesto que el Servidor no puede saber el formato de fecha del Ordenador que le ha pasado la sentencia, por lo que por defecto la va a interpretar en inglés.

Si no quieres hacer muchos cambios en tu aplicación, simplemente cambia el formato en el que pasas la fecha (con el FormatDateTime('mm/dd/yyyy', Fecha)).

Aunque una forma mejor de pasar estos datos, es usando parámetros.

La consulta quedaria en (la estableces en tiempo de diseño y no en tiempo de ejecución) :

select * from Tabla where Fecha >= :FECHA

Ahora veras que en la propiedad Params del objeto Query, tienes un parámetro FECHA de tipo fecha.

Para ejecutar la sentencia, la aplicación debe dar un valor al parámetro y abrir el Query :

Query.ParamValues['FECHA'] := Fecha;
Query.Open;

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita