Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Filtro por Fecha con LIKE, Ayuda (https://www.clubdelphi.com/foros/showthread.php?t=86429)

negrokau 07-08-2014 00:26:51

Filtro por Fecha con LIKE, Ayuda
 
hola amigos, tengo un inconveniente, quiere filtro una tabla por fecha, el drama es que tengo que poner de esta forma para que funcione 2014-08-03, si le pongo 03/08/2014 no pasa nada.... me podrian dar una ayudita....
le paso mi sentencia sql

Código Delphi [-]
procedure TF_ORDEN_SALIDA.Edit10Change(Sender: TObject);
begin
Q_ORDENES.Close;
Q_ORDENES.SQL.Clear;
Q_ORDENES.SQL.Text:='SELECT * FROM ORDEN_SALIDA WHERE UPPER(FECHA_PEDIDO) LIKE ''%'+Edit10.Text+ '%''ORDER BY COD_ORDEN desc';
Q_ORDENES.Open;

end;

necesito que filtre de esta manera 03/08/2014 o 03-08-2014....
alguna sugerencia?
desde ya, muchas gracias.....

ecfisa 07-08-2014 08:06:36

Hola negrokau.

Unas dudas:
  • ¿ Que motor de bd usas ?
  • ¿ La columna FECHA_PEDIDO de que tipo fué declarada ?
Saludos :)

Neftali [Germán.Estévez] 07-08-2014 10:05:25

Una pregunta, ¿Porqué buscar una fecha con LIKE?
¿No deberías hacer un =? No le veo sentido.

¿no puedes ajustar el formato de la fecha, antes de enviarla?

adrall 07-08-2014 12:43:10

Yo creo que el planteamiento no es correcto... seria valido para una búsqueda incremental sobre un campo de texto en el que vas acotando el filtrado a medida
que introduces caracteres en el TEdit, pero en un campo de DateTime lo lógico serias descomponer la fecha en año, mes y día para ir acotando el filtro por año,
mes y día respectivamente.

Yo creo que es más lógico hacer una búsqueda de la fecha concreta como apunta Neftalí usando por ejemplo el evento OnExit del TEdit una vez introducida la fecha y,
una vez comprobada la validez de la misma, ejecutar esta consulta SQL:

Código Delphi [-]
Q_ORDENES.Close; 
// Q_ORDENES.SQL.Clear;  // esta linea no es necesaria si luego asignas con SQL.Text :=  
Q_ORDENES.SQL.Text:='SELECT * FROM ORDEN_SALIDA WHERE FECHA_PEDIDO ="'+FormatDateTime('yyyy-mm-dd',StrToDate(Edit10.Text))+'" ORDER BY COD_ORDEN desc'; 
Q_ORDENES.Open;

Mira en las ayudas de Delphi y la BD que uses los formatos válidos y posibles para FormatDateTime, por ejemplo, en MySQL debes mandar la fecha en este formato entrecomillado "yyyy/mm/dd".

Saludos


La franja horaria es GMT +2. Ahora son las 11:10:49.

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