Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > SQL
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 23/07/2010
darkbits's Avatar
darkbits darkbits is offline
Miembro
 
Join Date: May 2006
Posts: 280
Poder: 21
darkbits Va por buen camino
Ayuda SQL Between con rango de fechas

Un saludo grande al club ,
tengo problemas con esta consulta con rango de fechas

la DB es MySQL
en campo tiene el nombre de "fecha" es varchar ( no se si esto tiene algo que ver) esta lleno con datos dia/mes/año

donde sDateEdit1.text=01/07/2010 y sDateEdit2.text= 22/07/2010 son mis 2 rangos de fechas y cuando ejecuto la consulta no me da ni un resultado

please.. como soluciono este detalle, toy trabajando con delphi 6

Código SQL [-]
DM.MySqlRep.close;
_DM.MySqlRep.SQL.Text:='SELECT fecha, hora, operador, det_producto,serial, garantia, cantidad, cadaUno, venta_bs, venta_US,utilidad FROM detalle_venta, venta WHERE venta.pago="CREDITO" and venta.id_ventas=detalle_venta.id_ventas and venta.fecha BETWEEN :fechaInicio and :fechaFinal and venta.operador="'+DBLookupComboBox1.Text+'"order by fecha ASC';
_dm.MySqlRep.ParamByName('fechainicio').AsDateTime:=strtodate(sDateEdit1.text);
_dm.MySqlRep.ParamByName('fechaFinal').AsDateTime:=strtodate(sDateEdit2.text);
_DM.MySqlRep.open;

Muchisimas gracias por darme una mano!
Reply With Quote
  #2  
Old 23/07/2010
Caral's Avatar
[Caral] Caral is offline
Miembro Premium
 
Join Date: Aug 2006
Posts: 7,659
Poder: 28
Caral Va por buen camino
Hola
Lo mejor es que el campo fecha sea Date, si no siempre va a dar algun problema.
Saludos
__________________
Siempre Novato
Reply With Quote
  #3  
Old 23/07/2010
Nelet Nelet is offline
Miembro
 
Join Date: May 2003
Location: Picassent - Valencia
Posts: 95
Poder: 24
Nelet Va por buen camino
Pregunto desde mi ignorancia de mySQL...¿las fechas no deben ir entre comillas?.
__________________
_____________________________________
And follow me to where the real fun is
Reply With Quote
  #4  
Old 23/07/2010
Jac fcc's Avatar
Jac fcc Jac fcc is offline
Miembro
 
Join Date: Jan 2010
Posts: 33
Poder: 0
Jac fcc Va por buen camino
Me parece que el formato que usa MySql es aaaa/mm/dd
entonces las fechas en los editores serian:

sDateEdit1.text='2010/07/01' y sDateEdit2.text='2010/07/22'

la consulta por fechas siempre la coloco al final, sería;

Código Delphi [-]
DM.MySqlRep.close;
_DM.MySqlRep.SQL.Text:='SELECT fecha, hora, operador, det_producto,serial, garantia, cantidad, cadaUno, venta_bs, venta_US,utilidad FROM detalle_venta, venta WHERE venta.pago="CREDITO" and venta.id_ventas=detalle_venta.id_ventas and venta.operador="'+DBLookupComboBox1.Text+'"and venta.fecha BETWEEN :fechaInicio and :fechaFinal order by fecha ASC';
_dm.MySqlRep.ParamByName('fechainicio').AsDateTime:=strtodate(sDateEdit1.text);
_dm.MySqlRep.ParamByName('fechaFinal').AsDateTime:=strtodate(sDateEdit2.text);
_DM.MySqlRep.open;

yo trabajo con SQL asi que desconosco los detalles de sintaxis, pero prefiero particionar el texto de la consulta:
Código Delphi [-]
_DM.MySqlRep.SQL.Text:='SELECT fecha, hora, operador, det_producto,serial, garantia, cantidad, cadaUno, venta_bs, venta_US,utilidad FROM detalle_venta, venta';
_DM.MySqlRep.SQL.Text:='FROM detalle_venta, venta';
_DM.MySqlRep.SQL.Text:='WHERE venta.pago="CREDITO" and venta.id_ventas=detalle_venta.id_ventas and venta.operador="'+DBLookupComboBox1.Text+'"and venta.fecha BETWEEN :fechaInicio and :fechaFinal'; 
_DM.MySqlRep.SQL.Text:='order by fecha ASC';

O algo similar que permita obtener el mismo resultado pero que se vea legible.
__________________
Para una vida sana hay que ocupar 30 de 24hrs diarias...Ups!
Reply With Quote
  #5  
Old 23/07/2010
calco_hugo calco_hugo is offline
Miembro
 
Join Date: Jul 2010
Posts: 42
Poder: 0
calco_hugo Va por buen camino
he tenido en algun momento un problema parecido, pero creo que la solucion esta por el lado de convertir el tema en el select o el where, CONVERT o TO_DATE, la verdad estoy hasta las manos con unas cosas que el jefe me pidio para el martes pasado (jeje), pero buscaria por ese lado, si no haria el codigo, si no podes avisame y trato de hacerlo
hugo
Reply With Quote
  #6  
Old 23/07/2010
darkbits's Avatar
darkbits darkbits is offline
Miembro
 
Join Date: May 2006
Posts: 280
Poder: 21
darkbits Va por buen camino
solucionado gracias a todo amigos..
Reply With Quote
  #7  
Old 23/07/2010
darkbits's Avatar
darkbits darkbits is offline
Miembro
 
Join Date: May 2006
Posts: 280
Poder: 21
darkbits Va por buen camino
ayuda BETWEEN con fecha y hora

Un salduo
un saludo tengo este Between que funciona con solo fechas muy bien con Mysql mi nuevo problema es cuando fecha es de tipo "datetime"
fecha + hora >> 23/07/2010 19:00:00
no me da el reporte para mi es algo en los parametros ya probe de todo y nada, help me

Código SQL [-]
_DM.MySqlRep.SQL.Text:='SELECT fecha, hora,operador, det_producto,serial, garantia, cantidad, cadaUno, venta_bs, venta_US,utilidad 
FROM detalle_venta, venta WHERE  venta.pago="CREDITO" AND venta.id_ventas=detalle_venta.id_ventas and venta.operador="'+DBLookupComboBox1.Text+'" and venta.fecha 
BETWEEN :fechainicio and :fechaFinal order by fecha ASC';

_dm.MySqlRep.ParamByName('fechainicio').AsDatetime:=trunc(sDateEdit1.date)+strtodatetime(HoraInicio.  text);
_dm.MySqlRep.ParamByName('fechaFinal').AsDatetime:=trunc(sDateEdit2.date)+strtodatetime(HoraFinal.te  xt);
 _DM.MySqlRep.Open;
Reply With Quote
  #8  
Old 23/07/2010
Jac fcc's Avatar
Jac fcc Jac fcc is offline
Miembro
 
Join Date: Jan 2010
Posts: 33
Poder: 0
Jac fcc Va por buen camino
lo que pasa es que la suma de fecha se realiza:
Quote:
trunc(sDateEdit1.date)+strtodatetime(HoraInicio.text);
estarás sumando la fecha de sDateEdit1 mas el dia y hora de la conversionstrtodatetime (..).

en lugar de particionar y concatenar solo agrega la hora a tu campo de fecha:
Código Delphi [-]
:=sDateEdit1.date+StrtoTime('00:00:01');//el primer segundo de tu fecha inicial
:=sDateEdit2.date+StrtoTime('23:59:59');//el ultimo segundo de tu fecha final

intentalo y nos cuentas como te fue.

¿no hubiera sido mejor continuar con tu anterior hilo?
no era necesario abrir uno nuevo, no crees?
__________________
Para una vida sana hay que ocupar 30 de 24hrs diarias...Ups!
Reply With Quote
  #9  
Old 24/07/2010
darkbits's Avatar
darkbits darkbits is offline
Miembro
 
Join Date: May 2006
Posts: 280
Poder: 21
darkbits Va por buen camino
Funciona muy Bien!

Funciono!

con las 2 opciones.

gracias por la solucion.


Nota: inicie un nuevo hilo porque mi anterior consulta fue respondida por todos los amigos. hasta su solucion .
Reply With Quote
  #10  
Old 24/07/2010
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is online now
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,681
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Yo diría que es el mismo tema, no?, ¿por qué abrir otro hilo? , por favor, no hagas estas cosas
Reply With Quote
  #11  
Old 24/07/2010
darkbits's Avatar
darkbits darkbits is offline
Miembro
 
Join Date: May 2006
Posts: 280
Poder: 21
darkbits Va por buen camino
Sorry

sorry amigos no volvera a pasar...
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Consulta Mysql Suma entre rango de fechas kaeltas MySQL 4 22/06/2012 21:30
Ayuda SQL Between con rango de fechas darkbits SQL 3 14/04/2010 22:31
Rango de fechas chino150 Varios 17 08/02/2008 20:17
Rango de fechas roberasturias Varios 2 23/05/2005 18:02
Rango de fechas JODELSA Varios 8 22/05/2003 20:45


All times are GMT +2. The time now is 00:09.


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
Copyright 1996-2007 Club Delphi