Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Como filtrar un campo tipo Date en una Tabla? (https://www.clubdelphi.com/foros/showthread.php?t=28426)

JuanErasmo 19-12-2005 21:36:03

Como filtrar un campo tipo Date en una Tabla?
 
Buenas Tardes amigos.
Necesito filtrar una tabla entre fechas por medio de Dos Date Time Pickers
Lo hago así:

AnsiString Filtro="FECHA_EXAMEN >= '"+DateToStr(DateDesde->Date)+"'and FECHA_EXAMEN<= '"+DateToStr(DateHasta->Date)+"'";

IBTable1->Filter=Filtro;
IBTable1->Filtered=true;

pero me sale un error asi:

EIBInterbase error: 'conversion error from string "19/12/2005"';

y no se que es......
El formato de la fecha esta igual.....
pero hay algo que esta mal......

Podrian Ayudarme?
Gracias

aledieb 19-12-2005 23:41:07

El problema es que estas comparando un campo date con un campo string, te recomiendo que cambies el IBTable por un IBQuery ó IBDataSet y utilizes una consulta SQL parametrizada, es mucho más rápido y con el IBDataSet te evitas utilizar un IBUpdate.

Espero que te sirva, Suerte

JuanErasmo 20-12-2005 16:15:12

El error se presenta cuando el número excede los 12.

por ejemplo desde 11/12/2005 hasta 12/12/2005 funciona el filtro.

pero desde 19/11/2005 hasta 12/12/2005 no funciona.

EIBInterbaseError 'conversion error from string 19/012005'

Alguien sabe porque puede ocurrir esto?

Gracias por su respuesta.

PD: No soy muy habil utilizando el IBQuery, por lo que prefiero IBTable->Filter
y sé que se puede lograr con este componente!

aledieb 20-12-2005 17:23:46

Cita:

Empezado por JuanErasmo
El error se presenta cuando el número excede los 12.

por ejemplo desde 11/12/2005 hasta 12/12/2005 funciona el filtro.

pero desde 19/11/2005 hasta 12/12/2005 no funciona.

EIBInterbaseError 'conversion error from string 19/012005'

...

El problema es el formato de fecha proba cambiando a mes/dia/año, el formato de USA (creo que es ese)

JuanErasmo 20-12-2005 17:51:03

Hola otra vez soy yo.....

ya le cambié el formato y me sale el siguiente error, igual cuando se pasa de 12, pero ya es distinto dice lo siguiente:
"12/19/2005 is not a valid date and time"...
Que puede ser ahora????
Gracias

JuanErasmo 20-12-2005 18:01:32

Ya lo solucioné muchas gracias por tu ayuda.
Pero tuve que cambiarle la configuración de mi equipo en:

Configuracion regional y de idioma a USA!!!!

como puedo cambiar la configuracion regional por código?

Gracasi

alt126 21-12-2005 09:24:59

En vez de cambiar el idioma, tendrias que intentar ver cual es el error y solucionarlo. Si ya has probado a cambiar el formato de fecha del componente, pq el error que dices sospechosamente suena a eso..., yo probaria a hacer la siguiente consulta parametrizada:

Código:

Consulta->SQL->Clear();
Consulta->SQL->Add("SELECT * FROM Tu_tabla WHERE campo_fecha>=:a;");
Consulta->Params->Items[0]->AsString = DateTimePicker->Date;
Consulta->ExecSQL();
Consulta->Active=true;

A ver que tal...


La franja horaria es GMT +2. Ahora son las 01:52:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi