Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Si no quieres usar parámetros, (aunque deberías, ya que es más cómodo y elegante), puedes hacer esto otro, claro que debes dar 2 parametros fecha inicial y fecha final

Código Delphi [-]
Query1.SQL.Add('Where Fecha between ' + quotedstr(Edit1.Text) +' and ' + quotedstr(Edit2.text);

Uniendo la técnica de Nuria con esta, te podría quedar algo así
Código Delphi [-]
 Query1.SQL.Add('Where Fecha between :FecIni and FecFin ') ;
  Query1.ParamByName('FecIni').AsDate := StrToDate(Edit1.Text);
  Query1.ParamByName('FecFin').AsDate := StrToDate(Edit2.Text);
  Query1.Active := True;

Como sugerencia, te diría que para introducir fechas uses un TdateTimePicker o bien el que trae las RxLibs (es un control para bases de datos), así te quitarás los problemas de fechas incorrectas.

El siguiente paso es verificar que tu motor de bases de datos recibe la fecha en el mismo formato de fechas que tu quieres dd/mm/yyyy o bien mm/dd/yyyy. La función FormatDateTime te puede ayudar, modificando los parámetros del SQL a .AsString para más comodidad.

Espero te ayude.

Saludos
Responder Con Cita
  #2  
Antiguo 05-12-2011
adan12 adan12 is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 17
Poder: 0
adan12 Va por buen camino
problemas delphi y datapiker

yo tengo este codigo quiero hacer una consulta de tal fecha a tal fecha pero tengo este codigo y no me sale nada marco las fechas y sale q no hay registro y si hay registros

adoQuery2.Close;
adoQuery2.SQL.Clear;
adoQuery2.SQL.Add('select * from viatico where fecha_ida Between '+
FormatDateTime('DDMMYYYY',DateTimePicker1.Date)+' And '+
FormatDateTime('DDMMYYYY',DateTimePicker2.Date));
adoQuery2.Open;
if ADOQuery2.IsEmpty then
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
MessageBox(Handle, 'No hay entradas.', 'Warnning', Mb_Ok + MB_ICONHAND + Mb_DefButton1)
end
end;
Responder Con Cita
  #3  
Antiguo 05-12-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
que base de datos usas?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 05-12-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
prueba asi

Código Delphi [-]
adoQuery2.SQL.Add('select * from viatico where fecha_ida Between '+
quotedstr(FormatDateTime('DDMMYYYY',DateTimePicker1.Date))+' And '+
quotedstr(FormatDateTime('DDMMYYYY',DateTimePicker2.Date)));
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 05-12-2011
adan12 adan12 is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 17
Poder: 0
adan12 Va por buen camino
Cita:
Empezado por oscarac Ver Mensaje
que base de datos usas?
ESTOY USANDO POR AHORA Y POR SU PORTABILIDAD ACCES PERO SIEMPRE USO SQL 2008
Responder Con Cita
  #6  
Antiguo 05-12-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
oh ya
el tema es que en access el tema de las fechas es complicadito

tienes que usar el caracter # entre las fechas algo asi

Código Delphi [-]
 
adoQuery2.SQL.Add('select * from viatico where fecha_ida Between #'+
FormatDateTime('DDMMYYYY',DateTimePicker1.Date)+'# And #'+
FormatDateTime('DDMMYYYY',DateTimePicker2.Date) + '#');
y en SqlServer como te dije en el post anterior
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 05-12-2011
adan12 adan12 is offline
Miembro
NULL
 
Registrado: jun 2011
Posts: 17
Poder: 0
adan12 Va por buen camino
Cita:
Empezado por oscarac Ver Mensaje
oh ya
el tema es que en access el tema de las fechas es complicadito

tienes que usar el caracter # entre las fechas algo asi

Código Delphi [-]
 
adoQuery2.SQL.Add('select * from viatico where fecha_ida Between #'+
FormatDateTime('DDMMYYYY',DateTimePicker1.Date)+'# And #'+
FormatDateTime('DDMMYYYY',DateTimePicker2.Date) + '#');
y en SqlServer como te dije en el post anterior
dejame provar a ver q onda ok......
Responder Con Cita
  #8  
Antiguo 12-12-2011
Avatar de PepeLolo
PepeLolo PepeLolo is offline
Miembro
 
Registrado: jun 2003
Ubicación: Fuenlabrada - Madrid - Espagna
Posts: 265
Poder: 24
PepeLolo Va por buen camino
Simplifica la consulta usando parámetros con las fechas
Código Delphi [-]
adoQuery2.SQL.Add('select * from viatico where fecha_ida Between  :fcdesde and :fchasta'
Código Delphi [-]
adoQuery2.paramByName('fcdesde').AsDate := DateTimePicker1.Date
adoQuery2.paramByName('fcHasta').AsDate := DateTimePicker2.Date;

Si no quieres problemas con ellas es la mejor solución, los componentes se encargan de realizar las transformaciones necesarias según el motor de bbdd.
__________________
PepeLolo
El hombre el único virus que mide más de unas cuantas micras
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


La franja horaria es GMT +2. Ahora son las 15:08:08.


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