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-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Problemas al extraer fechas con paradox

Hola amigos del Foro, necesito su ayuda.
Resulta que estoy trabajando Con Paradox y necesito poder filtar a partir de fechas establecidas, el campo fecha guarda la hora y fecha. En mi consulta deseo obtener los regsitros cuyos campo observacion tienen unas palabras buscadas, esto a partir de las fechas, esto involucra 2 tablas, las cuales uana de ellas OMIN02, guarda estas "observaciones", que es lo que busco y esta enlazada a partir de una campo (Nun_reg), bueno son alrdedor de 70 registros de los años 2002-2003, que cumplen, sin incluir las fechas establecidas, pero cuando quiero filtar por fechas, resulta que no respeta
las fechas que doy, creo que se me escapa algo.
Deseo obtener
lo hago asi :

Código PHP:
 
SELECT MINV02
.CLV_ART AS CODIGOMINV02.FECHA_DOCU AS FECHAMINV02.REFER AS REFERENCIA
MINV02.TIPO_MOV AS MOVIMIENTO,MINV02.CANT AS CANTIDAD,MINV02.UNI_VENTA AS MEDIDA,MINV02.ALMACEN,OMIN02.X_OBSER FROM MINV02 INNER JOIN OMIN02 ON MINV02.NUM_REG=OMIN02.NUM_REG 
WHERE 
(EXTRACT(YEAR FROM MINV02.FECHA_DOCU)>=2002 AND EXTRACT(YEAR FROM MINV02.FECHA_DOCU)<=2003) AND
(
EXTRACT(MONTH FROM MINV02.FECHA_DOCU)>=1  AND EXTRACT(MONTH FROM MINV02.FECHA_DOCU)<=11)  AND
(
EXTRACT(DAY FROM MINV02.FECHA_DOCU)>=1    AND EXTRACT(DAY FROM MINV02.FECHA_DOCU)<=18
AND 
(
OMIN02.X_OBSER LIKE '%CAMBIO X GARANTIA%' OR OMIN02.X_OBSER LIKE '%CAMBIO X GARANTIA%'
Como mencione existe registros del 2002 al 2003, cuando filtro entre fechas del mismo año bien , pero cuando lo haga entre 2002-2003 no filtra las del 2002.
Espero sus comentarios, acerca de este problema.
O existira alguna manera de extraer la fecha sin tener que extarer por partes el año el mes y el dia
Gracias

Última edición por Coco_jac fecha: 20-04-2006 a las 01:17:19.
Responder Con Cita
  #2  
Antiguo 20-04-2006
pijo pijo is offline
Miembro
 
Registrado: sep 2003
Ubicación: Barcelona, casi
Posts: 56
Poder: 21
pijo Va por buen camino
Red face Yo creo que esa consulta no va a funcionar muy bien

Piensa en que haria el ordenador cuando filtras por ejemplo:
Fecha desde: 15/11/2002
Fecha hasta: 05/03/2003

Por ejemplo la consulta que pones en el foro no daria ningun registro nunca. Tienes un problema en la consulta, lo que yo haria (contando que tienes el problema de que el campo es un campo DateTime) es hacer la consulta normal

Código SQL [-]
FECHA > '11/14/2002' AND FECHA < 06/03/2003

cuando introduces la fecha desde i la fecha hasta, restarle a la fecha desde un dia i poner el comparador de mayor que i a la fecha hasta sumarle un dia i poner como comparador el menor que. Siempre sin el igual.

Espero haberte servido de ayuda
ánims
__________________
Ánimos.
Responder Con Cita
  #3  
Antiguo 20-04-2006
Avatar de Coco_jac
Coco_jac Coco_jac is offline
Miembro
 
Registrado: mar 2005
Ubicación: Lima Peru
Posts: 338
Poder: 20
Coco_jac Va por buen camino
Hola y gracias por responder, Estoy trabajando con Paradox y no creo q acepte como mencionas, pero igual lo probe y me lanza el error :

Type mistmatch in expression


Código Delphi [-]
SELECT MINV02.CLV_ART AS CODIGO, MINV02.FECHA_DOCU AS FECHA, MINV02.REFER AS REFERENCIA, MINV02.TIPO_MOV AS MOVIMIENTO,MINV02.CANT AS CANTIDAD,MINV02.UNI_VENTA AS MEDIDA,MINV02.ALMACEN,OMIN02.X_OBSER FROM 
MINV02 INNER JOIN OMIN02 ON MINV02.NUM_REG=OMIN02.NUM_REG 
WHERE 
 (MINV02.FECHA_DOCU>'18/12/2002' and  MINV02.FECHA_DOCU<'18/10/2003') 
AND 
 (OMIN02.X_OBSER LIKE '%CAMBIO X GARANTIA%' OR 
  OMIN02.X_OBSER LIKE '%CAMBIO X GARANTIA%' OR 
  OMIN02.X_OBSER LIKE '%CAMBIO POR GARANTIA%')

Espero sus comentarios amigos.

Última edición por Coco_jac fecha: 20-04-2006 a las 21:50:40.
Responder Con Cita
  #4  
Antiguo 26-04-2006
gcaffe gcaffe is offline
Miembro
 
Registrado: oct 2004
Posts: 53
Poder: 20
gcaffe Va por buen camino
En Paradox si pones la fecha con codigo duro, es decir sin parámetros, tiene el formato MM/DD/AAAA, ejemplo:
[FONT=verdana,geneva,lucida,'lucida grande',arial,helvetica,sans-serif]Código SQL [-][/font]SELECT * FROM Tabla
WHERE Fecha >= '10/30/2005' AND Fecha <= '12/01/2006'



Esta sentencia te selecciona entre las fechas 30/10/2005 hasta 01/12/2006,

Ahora si armas el SQL con parámetros tendras que poner algo asi:
Código Delphi [-]with SQLSTR do begin SQL.Clear; SQL.Add('SELECT * FROM Tabla');
SQL.Add('WHERE Fecha >= ' + @FechaIni + ' AND Fecha <= ' + @FechaFin);
// donde luego pones los valores del parámetro
Parameters.Byname('@FechaIni').AsDate := StrToDate('30/10/2005');
etc..
end;


Espero que te de una idea.
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
Extraer fecha en paradox Coco_jac Varios 3 14-04-2006 04:50:47
problemas con las fechas majosf Varios 4 15-09-2005 02:42:37
problemas Fechas (now) jmlifi Varios 6 07-04-2005 18:57:18
Problemas con las fechas NuncaMas Varios 2 15-02-2005 17:33:03
Consulta de fechas en Paradox apunto SQL 2 27-05-2003 11:49:54


La franja horaria es GMT +2. Ahora son las 20:49:32.


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