![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Consulta entre 2 fechas.
Buenas, disculpen amigos se que este tema ya se ha tratado antes y lo he intentado de muchas maneras de las expuestas aki en el clubdelphi y nose cual es el problema. Necesito hacer una consulta entre dos fechas que ingreso mediante dos DateTimePicker utilizo Delphi 7 y MySql. Utilizo los componente, TTable,Tquery, TdataSource. Y si sirve de dato, el campo FechaIngreso es de tipo TimeStamp (YYMMDDHHMMSS). El codigo sql es el siguiente:
Pero resulta que el error que me arroja es el siguiente: Check the manual that correponds to your MySQL server version for the right syntax to user near 'Between01/09/2010And1( esa fecha que aparece ahi es la fecha de incio que ingreso. Desde ya gracias. Última edición por DeLiRioS fecha: 21-10-2010 a las 00:33:26. |
#2
|
||||
|
||||
![]() Bueno segun veo, tu código tiene dos errores principales, el primero es que no has dejado un espacio despues de la clausula 'Between' y tambien debe haber un espacio antes y despues de el "And"
![]() El segundo error es que MySQL guarda las fechas en éste formato > YYYY-MM-D , es decir : Año-Mes-Día , lo que significa que al utilizar la funcion DateToStr no le estas mandando el formato adecuado para la consulta. ![]() Solucion: Para estos menesteres es bueno hacer uso de lo que se llama Parámetros que son una especie de variables alas que se les puede asignar valores y utilizarlas en la consulta SQL, mas o menos de éste forma: Nota:Como podrán observar el código anterior ,no me he preocupado por enviar la consulta con el formato adecuado tal como lo guarda MySQL, ésto se debe a que el propio DataSet que ejecuta la consulta ya sabe como hacerlo. ![]() Saludos... ![]()
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7 Última edición por rgstuamigo fecha: 21-10-2010 a las 00:58:35. |
#3
|
||||
|
||||
Hola
Es un error frecuente pensar que delphi entiende todo. Veamos esto: Delphi entiende el texto asi: Select Empleado, DepartamentoFrom EmpleadosWhere FechaIngreso Between'+DateToStr(FechaIni.Date)+'And'+DateToStr(FechaFin.Date)); Esto es logico ya que es texto lo que se ejecuta dentro del add. Escomo siquisieraque meentendieradelphi que esloquequiero decir. ![]() Se entiende lo anterior?, no lo creo o por lo menos cuesta. Solucion: espacio entre todo esto: Por eso prefiero usar text y parametros ya que se entiende mejor: Saludos
__________________
Siempre Novato |
#4
|
|||
|
|||
Hola gracias amigos por su atención, hice como me explicaron, con los parametros y respetando los espacios pero ahora me da un nuevo error. Me dice: "Operation not applicable" intente cambiando en el ParamByName().AsDate por Value y el error ya no da pero no arroja nada la consulta, uso este código:
La consulta la hice correr en el MySql-Front donde está la BD y funciona a la perfección, teniendo en cuenta que alli inserto la fecha de incio y de fin. Pero en delphi me da ese error y es con las fechas probe haciendo otro tipo de consulta y tmb funciona perfecto, parece que es la manera en que paso los parametro o algo asi, tendra algo que ver que es un campo Timestamp? alli guardo fecha y hora. Usando SQL.Text me da el mismito error, disculpen quiizas es algo siemple pero no puedo resolverlo. Gracias de ante mano amigos. Última edición por DeLiRioS fecha: 21-10-2010 a las 05:39:16. |
#5
|
|||
|
|||
Consulta entre 2 Fechas
Hola amigos, estoy tartando de hacer lo arriba indicado, en mi caso tengo una tabla Mysql, cuya estructura es la siguiente:
Tabla entregas identrega, idbeneficiarios, idmercaderia, fecha beneficiariosidbeneficiarios, apellido, nombre, dni mercaderiaidmercaderia,detalle En el formulario FrmBenefxFecha tengo un Zquery ZQryFecha, dos DateTimePicker, en los cuales ingreso la fecha de inicio y la fecha final y un boton para iniciar la busqueda y un Dbgrid donde muestro el resultado, el código es el siguiente: with FrmBenefxFec.ZQryFecha do begin Close; Sql.Text:= 'select * ' + 'from entregas ' + 'where Fecha Between :finicio and :ffinal '; ParamByName('finicio').AsDate:=DateTPDesde.Date; ParamByName('ffinal').AsDate:=DateTPHasta.Date; Sql.Add('Order By Fecha'); //Open; ExecSQL; end El código en las propiedades sql del Zquery es el siguiente: select * from entregas inner join beneficiarios on (entregas.idbeneficiarios=beneficiarios.idbeneficiarios) inner join mercaderia on (entregas.idmercaderia=mercaderia.idmercaderia); y al ejecutarlo me sale el siguiente error: ZQryFecha: Parameter 'finicio' not found trate de incluir los parametros en las propiedades params de la zquery y tampoco. Desde ya les agradezco vuestra ayuda.- |
#6
|
||||
|
||||
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración
![]() Recuerda poner los tags al código fuente, ejemplo: ![]() Gracias ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Consulta Mysql Suma entre rango de fechas | kaeltas | MySQL | 4 | 22-06-2012 21:30:44 |
Obtener consulta entre fechas | maravert | MySQL | 1 | 16-11-2009 22:44:15 |
slq entre dos fechas comparar fechas | taru | MySQL | 2 | 30-07-2007 16:10:36 |
Entre fechas | erick_jesus | Impresión | 1 | 29-05-2006 19:10:50 |
dias entre dos fechas | davidgaldo | Varios | 5 | 19-05-2005 21:02:03 |
![]() |
|