PDA

Ver la Versión Completa : Fechas en sql


carymar
14-06-2006, 22:21:46
Hola..lo q quiero realizar es una consulta a una tabla en el q guardo las facturaciones.q me devuelva los comprobanes emitidos en rango de fechas, para ello le paso como parametro la fecha inicial y final..Por ejemplo en la tabla de abajo si le doy como param 02/06/2006 y 03/06/2006, me tendria q devolver el comp 001-0000001 y el 001-00000002, pero solo me muestra el 001-0000001 el gestor de bd es Access y el lenguaje es Delphi6 po ej:
cod_compro Fecha Importe
001-0000001 02/06/2006 25
001-0000002 03/06/2006 31
001-0000003 04/06/2006 25
El componente q utilizo es un Tquery y en sql escribo:
Select * from Ventas
Where Fecha between :ini and :fin
y en un button escribo:
Tquery.close;
tquery.parambyname('ini').asdatetime:= datetimepicker1.datetime;
tquery.parambyname('fin').asdatetime:= datetimepicker2.datetime;
Tquery.open;

Lepe
14-06-2006, 23:48:04
Revisa con un ShowMessage el datetimepicker1.datetime, igual tiene una hora que es mayor que en la base de datos y por eso no sale.

Si acaso haz un Recodetime de esas fechas para ponerlas en el rango adecuado.

Saludos.

kuan-yiu
15-06-2006, 18:35:10
A mí me enseñaron un método un pelín bestia, pero que funciona...
Yo reescribo la query dentro de una función (porque los parámetros de selección son variables) y en la cláusula where tengo esto:
qf.SQL.Add('AND TRUNC(DS.FECHA) BETWEEN ' + ''''
+ formatdatetime('dd/mm/yyyy',fechaIni.date) + '''' +' AND '
+ '''' + formatdatetime('dd/mm/yyyy',fechaFin.date) + '''');