Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda SQL Between con rango de fechas (https://www.clubdelphi.com/foros/showthread.php?t=67332)

darkbits 12-04-2010 15:57:53

Ayuda SQL Between con rango de fechas
 
Un saludo al club ,
mira tengo problemas q no se como resolver con fechas
realizo esta consulta donde sDateEdit1.Date=01/04/2010 y sDateEdit2.Date= 12/04/2010 son mis 2 rangos de fechas y cuando ejecuto la consulta me da todos los resultados entre 01 al 12 sin importar el mes ni año, Help ME please.. como soluciono este detalle, probe de todo para que filtre y nada probe con 01-04-2010 al 12-04-2010 y si funciona bien!
pero toda el sistema esta para --/--/-- toy trabajando con delphi 6

Código SQL [-]
_DM.ADOsqlRV.Close;
_DM.ADOsqlRV.SQL.Text:='SELECT fecha, hora,det_producto FROM venta WHERE venta BETWEEN DateTimeToStr(sDateEdit1.Date) and DateTimeToStr(sDateEdit2.date) order by fecha ASC';
_DM.ADOsqlRV.Open;



Muchisimas gracias.!

Galahad 12-04-2010 16:27:15

Buenas,,,
yo te recomendaria utilizar parámetros en las consultas, sobre todo con
fechas simplifican muchos problemas, la consulta quedaria así.
Cita:

_DM.ADOsqlRV.Close;
_DM.ADOsqlRV.SQL.Text:='SELECT fecha, hora,det_producto
FROM venta WHERE venta BETWEEN
:fechadesde and :fechahasta order by fecha ASC';
_dm.adosqlrv.parambyname('fechadesde').value := strtodate( editfechadesde);
_dm.adosqlrv.parambyname('fechahasta').value := strtodate( editfechahasta);
_DM.ADOsqlRV.Open;
Por otro lado,, cuidado con utilizar datetimetostr, ten en cuenta que esa
función utiliza tambien la hora para filtrar , deberias de utilizar
datetostr (solo la fecha)..

Espero te ayude....

darkbits 12-04-2010 21:00:05

No Funciono..:(
 
Gracias por su ayuda,
pero persiste el detalle le doy rango de sDateEdit1.text=01/04/2010 al sDateEdit2.text=12/04/2010 y me da todos los valores del 01...al ..14 de cualquier mes no solo de 04 eso qu ya estoy utilizando parametros.
estoy con una base de datos de acces...

Help Me Please.



Código SQL [-]
  _DM.ADOsqlRV.Close;
_DM.ADOsqlRV.SQL.Text:='SELECT fecha, hora, id_us, det_producto,serial, garantia, cantidad, cadaUno, venta_bs, venta_US,utilidad 
FROM detalle_venta, venta WHERE venta.pago="CONTADO" and venta.id_ventas= detalle_venta.id_ventas and  venta.fecha BETWEEN :fechaInicio and :fechaFinal and venta.id_us="'+DBLookupComboBox1.Text+'"order by fecha ASC';
_dm.adosqlrv.Parameters.ParamByName('fechaInicio').Value :=strtodate(
sDateEdit1.text);
_dm.adosqlrv.Parameters.ParamByName('fechaFinal').value :=strtodate(
sDateEdit2.text);
_DM.ADOsqlRV.Open;


gracias por sus ayudas...

_dm.adosqlrv.Parameters.ParamByName('fechaInicio').Value :=strtodate(
sDateEdit1.text);
_dm.adosqlrv.Parameters.ParamByName('fechaFinal').value :=strtodate(
sDateEdit2.text);
_DM.ADOsqlRV.Open;





gracias por sus ayudas...

fidel 14-04-2010 22:31:30

Con parámetros debería de funcionar, pero si no, cambia el formato de fecha que tienes de día/mes/año por este de mes/día/año. Quizás por eso te devuelve solo valores entre 1 y 12. Pruebalo a ver si funciona.


La franja horaria es GMT +2. Ahora son las 00:52:37.

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