Club Delphi  
    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 20-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Problema con BETWEEN

Para realizar una consulta por rango de fechas, hago lo siguiente:

Código Delphi [-]
 
var desde,hasta:string;
begin
  desde:=QuotedStr(FormatDateTime('yyyy-mm-dd',DateTimePicker2.Date));
  hasta:=QuotedStr(FormatDateTime('yyyy-mm-dd',DateTimePicker3.Date));
  QIngreso.Close;
  QIngreso.SQL.Clear;
  QIngreso.SQL.Text:='select * from caja where movimiento="INGRESO" and fecha between '+desde+' and '+hasta;
  QIngreso.Open;

Pero la consulta NO me devuelve los registros cuya fecha=hasta, es decir, para que me devuelva esos registros, debo sumarle 1 dia. Porque?
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #2  
Antiguo 20-04-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Si adaptas este ejemplo que yo utilizo no tendrás problemas.
Código Delphi [-]
Procedure Facturas_Del_Mes();
begin
DmComisi.QrComis.Close;
DmComisi.QrComis.Sql.Clear;
DmComisi.QrComis.Sql.Add('Select NFactura, Fecha, Codclient, Vendedor, ');
DmComisi.QrComis.Sql.Add('Base, Repartos ');
DmComisi.QrComis.Sql.Add(' from Facturas');
DmComisi.QrComis.Sql.Add('Where Vendedor = '+QuotedStr(DmAni.VendCodigo.Value));
DmComisi.QrComis.Sql.Add('And Fecha Between :Ini And :Fin');
DmComisi.QrComis.ParamByName('Ini').AsDate:= fIni;
DmComisi.QrComis.ParamByName('Fin').AsDate:= fFin;
DmComisi.QrComis.Open;
end;

fIni y fFin, son variables de tipo TdateTime.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 20-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Gracias marcoszorrilla, ya lo habia solucionado usando parámetros, pero mi duda es en realidad, porque tiene ese comportamiento.

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #4  
Antiguo 20-04-2008
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
En SQL el formato de fecha tiene que ser "mm/dd/yyyy".

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 20-04-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 19
MaMu Va por buen camino
Cita:
Empezado por marcoszorrilla Ver Mensaje
En SQL el formato de fecha tiene que ser "mm/dd/yyyy".

Un Saludo.
Asi es, y en mi caso, usando mySQL, tengo las fechas en este formato:
'yyyy-mm-dd', lo cual ya lo tenia contemplado. Lo que pasa es que el resultado del between, me queda:

min > betweeb < max

Cuando deberia ser

min >= betweeb <= max

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
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 16:56:48.


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