Foros Club Delphi

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

pau_elx 25-05-2011 19:52:45

Consulta con formatos de fecha
 
Hola, tengo un problema con una query, tengo una tabla en mysql llamada factura con un campo fecha_factura de tipo datetime, yo cojo en un formulario una fecha de un datetimepicker, y a continuación hago una consulta
Código Delphi [-]
query1.SQL.Add('select * from factura where fecha_factura=:fecha;');
query1.ParamByName('fecha').AsDate:=datetimepicker1.date;
y me da error en la consulta cuando compara el datetimepicker con el campo fecha factura, la fecha me la pone como año-mes-dia, en mysql está almacenada como dia/mes/año, he probado a definir una variable s de tipo string y utilizar la función
Código Delphi [-]
s:=formatdatetime('dd/mm/yyyy',datetimepicker1.date);
lo cual me cambia el formato, pero al pasar otra vez el string a date con strtodate(s); me lo pone otra vez en año-mes-dia, ¿alguien sabe como solucionar este error?

un saludo.

BlueSteel 25-05-2011 21:40:01

Hola

Revisa este link

Recuerda utilizar los TAG's

Salu2

pau_elx 26-05-2011 02:23:00

Gracias por el link, me he dado cuenta que el datetimepicker coge los datos en formato dd/mm/aaaa y en mysql la fecha la toma en formato aaaa/mm/aaaa
por lo que se me había ocurrido declararme 2 variables string e y s (ya que la consulta la hago entre 2 fechas y luego
Código Delphi [-]
e:=formatdatetime('yyyy/mm/dd',datetimepicker1.date);
s:=formatdatetime('yyyy/mm/dd',datetimepicker2.date);
y la consulta quedaria asi:
Código Delphi [-]
datamodule2.Query2.SQL.text:='select num_fra, fec_fra, nom_cli from clientes right join factura on cod_cli=cod_cli_fra where fec_fra >= '+e+' and fec_fra <='+s+' order by fec_fra';
también he probado con:
Código Delphi [-]
 datamodule2.Query2.SQL.text:='select num_fra, fec_fra, nom_cli from clientes right join factura on cod_cli=cod_cli_fra where fec_fra >= '+datetostr(datetimepicker1.Date)+' and fec_fra <='+datetostr(datetimepicker2.Date)+' order by fec_fra';
y en ambos casos me dice que la consulta está vacia cuando existen registros

pau_elx 26-05-2011 02:43:22

Gracias por la ayuda ya está solucionado, al final con formatdatetime ha funcionado

ecfisa 26-05-2011 08:13:37

Hola pau_elx.

Me alegra que lo resolvieras y agradezco que hayas compartido con nosotros la solución.

Aprovecho para pedirte lo mismo que BlueSteel. Que hagas uso de las etiquetas [delphi] [/delphi] para que el código que expones sea más legible.

Un saludo.


La franja horaria es GMT +2. Ahora son las 15:27:41.

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