Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-04-2010
alejitoo alejitoo is offline
Miembro
 
Registrado: mar 2010
Posts: 19
Poder: 0
alejitoo Va por buen camino
comparacion de fechas

buenas tardes tengo un problema con un codigo quiero realizar una consulta con dos fechas diferentes es decir que me muestre los datos que se encuentran en fecha 1 hasta fecha 2 pero cuando utilizo el query para hacerla no me quiere correr el programa me aparece este error

[Error] Unit26.pas(42): Incompatible types: 'String' and 'TDateTime'
[Error] Unit26.pas(43): Incompatible types: 'String' and 'Extended'

y este es el codigo que estoy usando

Código:
query1.open;
query1.sql.text:= ( 'select * from Producciones where Fecha BETWEEN' +StrToDate(Edit1.text)+' AND '+ StrToDate(Edit2.Text));
query1.active:=true;
tambien cambie los edit por el DateTimePicker pero no me funciona
si alguien me podria ayudar se lo agradeceria
Responder Con Cita
  #2  
Antiguo 20-04-2010
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Lo que sucede es que has mal interpretado la función "StrToDate", esta función te convierte una cadena a fecha y lo que tú quieres es lo contrario. La función que necesitas se llama "DateToStr" que si no me equivoco, se encuentra en la unidad DateUtils.

Saludos,
Chris

EDITO: Para usar la función DateToStr, es mejor que cambies esos Edits por unos DateTimePickers.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 20-04-2010
alejitoo alejitoo is offline
Miembro
 
Registrado: mar 2010
Posts: 19
Poder: 0
alejitoo Va por buen camino
compadre nada que funciono mira los errores que me aparecen y mira el codigo como lo coloque

[Error] Unit26.pas(41): Undeclared identifier: 'DateTimePicker'
[Error] Unit26.pas(41): ')' expected but identifier 'Date' found

Código:
query1.open;
query1.sql.text:= ( 'select * from Producciones where Fecha BETWEEN' +datetostr(DateTimePicker.Date)+' AND '+ datetostr(DateTimerPicker2.Date));
query1.active:=true;
Responder Con Cita
  #4  
Antiguo 20-04-2010
Avatar de radenf
radenf radenf is offline
Miembro
 
Registrado: oct 2007
Ubicación: Viña del Mar,Chile
Posts: 608
Poder: 17
radenf Va por buen camino
Estimado alejitoo :

Prueba con este código :

Código Delphi [-]
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('select * ');
Query1.SQL.Add('from Producciones');
Query1.SQL.Add('where Fecha between' + QUOTEDSTR(FormatDateTime('dd/mm/yyyy',DateTimePicker1.Date))+'AND' + QUOTEDSTR(FormatDateTime('dd/mm/yyyy',DateTimePicker2.Date)));
Query1.Open;

Previamente debes agregar DateUtils en el uses de tu Form

Ojalá te sirva
Saludos
Responder Con Cita
  #5  
Antiguo 20-04-2010
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por alejitoo Ver Mensaje
compadre nada que funciono mira los errores que me aparecen y mira el codigo como lo coloque

[Error] Unit26.pas(41): Undeclared identifier: 'DateTimePicker'
[Error] Unit26.pas(41): ')' expected but identifier 'Date' found

Código:
query1.open;
query1.sql.text:= ( 'select * from Producciones where Fecha BETWEEN' +datetostr(DateTimePicker.Date)+' AND '+ datetostr(DateTimerPicker2.Date));
query1.active:=true;
Fíjate que tienes mal escrito el nombre de "DateTimePicker", debería ser "DateTimePicker1" con seguridad ese es el origen de los ambos errores que tienes.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 20-04-2010
alejitoo alejitoo is offline
Miembro
 
Registrado: mar 2010
Posts: 19
Poder: 0
alejitoo Va por buen camino
buena muchachos anoche pase todo el dia con una amiga intentando q me corriera el programa y ella consiguio un code buenisimo aqui se los dejo espero que les sirva a aquellas personas q tengan la misma duda que yo


Código:
Query1.SQL.Text := ('SELECT * FROM Nombre de la tabla ');
Query1.sql.add('Where Fecha between :fecha1 and :fecha2');
Query1.parambyname('fecha1').asdatetime := fecha1.Date;
Query1.parambyname('fecha2').asdatetime := fecha2.Date;
Query1.Open;
necesitaran dos datetimepicker y los llamaran fecha1 y fecha2. pegan esto y listo funciona no tienen q estar programando tanto..

espero que les sirva de mucha ayuda
Responder Con Cita
  #7  
Antiguo 12-05-2010
odrack odrack is offline
Miembro
 
Registrado: feb 2008
Posts: 167
Poder: 17
odrack Va por buen camino
Hola!!

Quiza sea un poco tarde y seguramente ya lo hayan resuelto, pero a alguien mas le pueda servir si tiene el mismo problema.

Colocar dos datetimepicker y dos variables
var fecha1, fecha2:string;

el siguiente codigo hace la busqueda

Código Delphi [-]
//formatea la fecha
 fecha1:=formatdatetime('YYYY-MM-DD', datetimepicker1.date);
  fecha2:=formatdatetime('YYYY-MM-DD', datetimepicker2.date);
 
//busca datos en tabla
  query1.Close;
  query1.SQL.Clear;
  query1.SQL.Text:='select * from tabla where fecha between '+quotedstr(fecha1)+' and '+quotedstr(fecha2);
  query1.ExecSQL;
  query1.Open;


Saludos!!
Responder Con Cita
  #8  
Antiguo 25-06-2010
fpirovani fpirovani is offline
Miembro
 
Registrado: feb 2008
Ubicación: Entre Rios, Argentina
Posts: 24
Poder: 0
fpirovani Va por buen camino
Cita:
Empezado por odrack Ver Mensaje
Hola!!

Quiza sea un poco tarde y seguramente ya lo hayan resuelto, pero a alguien mas le pueda servir si tiene el mismo problema.

Colocar dos datetimepicker y dos variables
var fecha1, fecha2:string;

el siguiente codigo hace la busqueda

//formatea la fecha
fecha1:=formatdatetime('YYYY-MM-DD', datetimepicker1.date);
fecha2:=formatdatetime('YYYY-MM-DD', datetimepicker2.date);

//busca datos en tabla
query1.Close;
query1.SQL.Clear;
query1.SQL.Text:='select * from tabla where fecha between '+quotedstr(fecha1)+' and '+quotedstr(fecha2);
query1.ExecSQL;
query1.Open;





Saludos!!
Buenas! yo quise hacer algo parecido pero no funcionaba, buscando en internet encontre esto y me andubo de 10.


Query.Active := False;
Query.SQL.Text := 'select * from Tabla where Fechas between #'+DateToStr(Fecha_Desde)+'# and #'+ DateToStr(Fecha_Hasta)+'# ';
Query..Active := True;

Como ven las fechas estan delimitadas por #, no me pregunten por que, pero asi anda y de la otra forma no me andaba...
Estoy usando delphi 7 y en este momento los componentes ADO

Saludos a todos !!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comparación de Fechas silver07 Conexión con bases de datos 6 26-09-2007 17:43:05
Optimizar comparación de fechas kuan-yiu Varios 11 27-07-2006 10:11:02
comparación de fechas Nelly Varios 2 27-10-2005 17:30:42
Operadores de comparación... dunia_lv MS SQL Server 3 06-07-2005 18:11:56
Comparación de Fechas sierraja Varios 5 19-06-2005 06:56:20


La franja horaria es GMT +2. Ahora son las 07:52:56.


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