PDA

Ver la Versión Completa : problemas con fecha en sql


jupehe
04-04-2013, 04:13:30
Os comento, estoy haciendo una consuktadatos.Query1.SQL.Text:='SELECT sum(precio) as total FROM abonos WHERE fecha>'+#39+'01/04/2013'+#39+' and fecha<'+#39+'01/10/2013'+#39;
y me tira el error invalid variant type conversion. el error lo provoca la fecha < que, tambien he probado con los parametros, con Between y me da el mismo error, si pongo datos.Query1.SQL.Text:='SELECT sum(precio) as total FROM abonos WHERE fecha>'+#39+'01/04/2013'+#39+' and fecha>'+#39+'01/10/2013'+#39;
no lo da. Estoy bloqueado, haber si alguien me puede ayudar.
uso el delphi 6, tabla paradox

olbeup
04-04-2013, 09:14:53
Hola jupehe

No encuentro ningún error en la SQL, has probado hacerlo directamente en el BDE (Database Desktop) de paradox, quitale el WHERE haber si el problema esta en el campo PRECIO por algún dato erroneo que pudiera tener.


with datos.Query1 do
begin
SQL.Add('SELECT');
SQL.Add(' SUM(PRECIO) AS TOTAL');
SQL.Add(' FROM Abonos');
SQL.Add(' WHERE FECHA BETWEEN ' + QuotedStr('01/04/2013') + ' AND ' + QuotedStr('01/10/2013'));

Open;
end;


Un saludo

jupehe
04-04-2013, 11:48:24
Gracias por responder olbeup, he echo lo que me dices y me da ningun resultado. te comento:
directamente en la BDE
SELECT SUM(PRECIO) AS TOTAL FROM Abonos WHERE FECHA>'01/01/2013'

resultado correcto

SELECT SUM(PRECIO) AS TOTAL FROM Abonos WHERE FECHA>'01/01/2013' and FECHA<'01/09/2013'

no me da nongun resultado,

SELECT SUM(PRECIO) AS TOTAL FROM Abonos WHERE FECHA<'01/09/2013'

no me da ningun resultado y hay datos, he probado con BETWEEN y tampoco, esto no me habia pasado antes, quizas sea un problema de la tabla.

olbeup
05-04-2013, 11:47:04
Hola Jupehe,

Prueba a quitarle sel SUM(PRECIO) y pon un asterisco ( * ) para que te muestre todos los registros según fecha, de esta marera sabrás si hay registros que sumar.

Un saludo.

jupehe
05-04-2013, 18:45:11
Hola, me hace la consulta, pero no me controla las fecha, sale todo igual.

Ya he echo lo que quiero sin sql, cuando tenga mas tiempo cambiare la tabla, y lo probare, tenia que sacar los datos por trimestre, y ya lo he echo, manualmente.

Gracias por tu ayuda. y un saludo

jpgonzalez
19-04-2013, 01:19:21
Prueba poniendo la fecha como 'aaaa-mm-dd' y fijate si asi funciona.