PDA

Ver la Versión Completa : Consulta de fechas


YolandaM
26-07-2003, 19:48:16
Holaa todos /as

Una pruguntita muuu novata...


Como consulto unos datos de una tabla paradox entre fechas
suponiendo que el campo de llama FECHA.


SELECT * FROM MIBASE WHERE FECHA = 14/07/2003
Este codigo me da error en 14/07/2003 no entiede lo que quiero decir, si lo pongo entre corchetes #14/07/2003# más de lo mismo.

Como pongo este codigo para que lo entienda.

Gracias anticipadas.

marcoszorrilla
26-07-2003, 20:00:55
Si la fecha es estática:

procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.clear;
Query1.Sql.Add('Select * from Factura where fecha = '+ '''04/15/2001''');
Query1.Open;
end;

Como verás primero va el mes y despues el día.


Si la fecha la tomas de un edit normal

Query1.Sql.Add('Select * from Factura where fecha = '+ QuotedStr(Edit1.Text);


Convendría comprobar antes si la fecha tecleada es válida.
Las almohadillas las incluirías por ejemplo si trabajarás con Access, con Paradox y Dbase te daría error.

Un Saludo.

YolandaM
26-07-2003, 20:06:41
Otra vez Muchas gracias marcos.

La función QuotedStr, concretamente que hace?

además si en la base de datos la fecha esta grabada primero
dia/mes/año, porque en la consulta hay que poner primero el mes?

Saludos. YOLANDAM

Newbie
26-07-2003, 20:13:42
Podrías probar ponerlo así, con comillas en lugar de ##

SELECT * FROM MIBASE WHERE FECHA = '14/07/2003'

y a veces me he dado cuenta que varía el ordene n el que tienes que poenr el día y el mes. Puedes probar primero con 'dd/mm/aaaa' y si no funciona, como 'mm/dd/aaaa'.

Te aconsejo que prubes el query primero en el sql explorer de delphi o en el database desktop y veas como te funciona.

Espero haber sido de utilidad. :D

YolandaM
26-07-2003, 20:49:14
que hago mal aqui....?


with Query1 do begin
with SQL do begin
Clear;
Add('select refe as Nº_Factura, material AS Total_Material, ');
Add('obra AS Total_Mano_obra,tot AS Importe_Factura_€ ');
Add('FROM FACTURAS');
add('WHERE fecha='+ Quotedstr(entrada_fechas.f1.Text));
Add('order by refe');

Me da error en datos de diferente tipo en Quotedstr(entrada_fechas.f1.Text));

Gracias...

__cadetill
26-07-2003, 21:00:23
Bueno, en primer lugar, te aconsejaria que utilizaras (para las fechas) componentes especiales para ellas como el DateTimePicker o los que vienen con las rusas (que a mi me gustan mas).

Posteado originalmente por YolandaM
add('WHERE fecha='+ Quotedstr(entrada_fechas.f1.Text));

Para el caso que nos ocupa, tendras que transformar el string a formato fecha y luego aplicarle formato con FormatDateTime. Algo asi mas o menos


var
fecha : TDate;
strfecha: string;
begin
fecha := StrToDate(entrada_fechas.f1.Text);
strfecha := FormatDateTime('mm/dd/yyyy', fecha);
add('WHERE fecha='+ Quotedstr(strfecha);


Espero te sirva

YolandaM
26-07-2003, 21:10:34
Gracias a todos. sois geniales.