Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta de fechas (https://www.clubdelphi.com/foros/showthread.php?t=2514)

YolandaM 26-07-2003 19:48:16

Consulta de fechas
 
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:
Código:

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
Código:

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 ##

Código:

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).

Cita:

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

Código:

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.


La franja horaria es GMT +2. Ahora son las 20:48:41.

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