Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-08-2005
JavierO JavierO is offline
Miembro
 
Registrado: jul 2005
Ubicación: Pachuca, Hidalgo, México
Posts: 38
Poder: 0
JavierO Va por buen camino
Question Problema con rango de fecha

Hola a todos:

tengo un problema al realizar la consula de una fecha en Access 2000

SELECT peci_c.peci_anio, peci_c.peci_numero
FROM sil_periodos_cierre peci_c
WHERE peci_c.peci_tipo = 'CON'
AND '19/07/2004' >= format(peci_c.peci_fecha_inicio,'dd/mm/yyyy')
AND '19/07/2004' <= format(peci_c.peci_fecha_fin,'dd/mm/yyyy')

necesito que que encuentre el rango para la fecha que le estoy pidiendo pero me trae todos los valores

peci_anio

peci_numero

peci_c.peci_fecha_inicio

peci_c.peci_fecha_fin

2004

1

01/01/2004

31/01/2004

2004

2

01/02/2004

29/02/2004

2004

3

01/03/2004

31/03/2004

2004

4

01/04/2004

30/04/2004

2004

5

01/05/2004

31/05/2004

2004

6

01/06/2004

30/06/2004

2004

7

01/07/2004

31/07/2004

2004

8

01/08/2004

31/08/2004

2004

9

01/09/2004

30/09/2004

2004

10

01/10/2004

31/10/2004

2004

11

01/11/2004

30/11/2004

2004

12

01/12/2004

31/12/2004



y el valor que me deberia de mostrar es 2004 y 7

ya tambien lo hice con between y tampoco lo hace

si tienen alguna idea de como hacerlo o de porque no me muestra los datos, les voy agracecer sus comentarios
Responder Con Cita
  #2  
Antiguo 18-08-2005
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Comparas string con fechas....

No he trabajado con Access 2000, pero me da la impresion que la comparacion de strings que estás haciendo no tiene mucha lógica, ya que las fechas y los string tienen diferente cardinalidad (ordenacion). Normalmente suelo usar parametros para comparaciones de fecha, para evitar diferencias en el formato que use la base de datos instalada en el cliente:

Código:
 
with MiQry do begin
  Sql.Clear;
  Sql.Add(' SELECT peci_c.peci_anio, peci_c.peci_numero ');
  Sql.Add('   FROM sil_periodos_cierre peci_c ' );
  Sql.Add('WHERE peci_c.peci_tipo = ''CON'' ');
  Sql.Add('  AND peci_c.peci_fecha_inicio <= :Fec1 ');
  Sql.Add('  AND peci_c.peci_fecha_fin >= :Fec2 ');
  ParamByName('Fec1').AsDateTime := StrToDate('19/07/2004');
  ParamByName('Fec2').AsDateTime := StrToDate('19/07/2004');
  Open;
end;
Según la consulta que has enviado saldrían todos los registros en cuyo periodo esté contenida la fecha 19 de julio del 2004, independientemente del año en que empiecen o terminen.

Saludos.
Responder Con Cita
  #3  
Antiguo 18-08-2005
afxe afxe is offline
Miembro
 
Registrado: jul 2004
Ubicación: Malaga-España
Posts: 273
Poder: 20
afxe Va por buen camino
Una aclaración mas:

Si no te funciona lo anterior o no quieres complicarte con parametros, compara las fechas usando el formato Año-mes-día: 2004-07-19, ya que el problema que estás teniendo es que el '19-07-2004' es, efectivamente, anterior al '31-03-2004' ya que por orden alfabético, el 1 (primer caracter de la primera fecha) es menor que el 3 (primer caracter de la segunda fecha). Dicho de otra manera, si comparas string, al procesador le da igual que sea una fecha o la combinación de tu caja fuerte.Otra vez saludos.
Responder Con Cita
  #4  
Antiguo 19-08-2005
JavierO JavierO is offline
Miembro
 
Registrado: jul 2005
Ubicación: Pachuca, Hidalgo, México
Posts: 38
Poder: 0
JavierO Va por buen camino
Muchas gracias Afxe por tu referencia tienes razón y converti el valor de la fecha que estoy formateando con la funcion CDate

Saludos
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 08:23:46.


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