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 30-09-2006
Avatar de Oraxtar
Oraxtar Oraxtar is offline
Registrado
 
Registrado: sep 2006
Posts: 4
Poder: 0
Oraxtar Va por buen camino
restar fechas sql

Hola amigos del foro, tengo el siguiente problema y espero me puedan ayudar. Estoy realizando un proyecto en el cual manejo informacion de medicamentos. Lo que pretendo hacer es un reporte que me muestre los medicamentos que van a caducar con un mes de anterioridad manejando una query. Estoy trabajando con Delphi 7 y mis tablas estan hechas en IB 6.
Estuve chencando el foro pero no puede entontrar algo. El codigo que tengo ahora es este :

fecha:=datetostr(date);
frmrepcad.IBQuery1.Close;
frmrepcad.IBQuery1.SQL.Clear;
frmrepcad.IBQuery1.SQL.Add('select * from medicamento where fecha_cad-:fecha1 between 1 and 30');
frmrepcad.IBQuery1.ParamByName('fecha1').AsDateTime:=strtodatetime(fecha);
frmrepcad.IBQuery1.open;
frmrepcad.QuickRep1.Preview;

Con este codigo me marca un error, espero me puedan ayudar.
Responder Con Cita
  #2  
Antiguo 30-09-2006
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 19
ilichhernandez Va por buen camino
Los campos fecha_cad y fecha 1 son tipo date ?? ...... se que es ua pregunta rara pero he visto fechas en formato string tambien..
en que formato las guardas (01122006 o 20061201)
__________________
[Lo que a veces es tan facil, a veces parece imposible]

Última edición por ilichhernandez fecha: 30-09-2006 a las 03:45:25.
Responder Con Cita
  #3  
Antiguo 30-09-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

No entiendo por que un parametro justo despues de un campo, ahi es que esta el error.

Código SQL [-]
select * from medicamento where fecha_cad between :fechahoy and fechahoy+30
Esta consulta mostrará los medicamentos qeu se van a vences dentro de los proximos 30 dias.
"Fechahoy" como su nombre lo dices es un parametro en la que asignaras la fecha actual o cualquier otra fecha si lo consideras oportuno.

Pd:Trata de usar las etiquetas para resaltar el codigo que utilices. Dale clic a los link que tengo en mi firma y chequea como se utilizan. Despues de eso, edita tu mensaje de mas arriba y haz la prueba. BIENVENID@ al Club
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 30-09-2006 a las 09:10:34.
Responder Con Cita
  #4  
Antiguo 01-10-2006
Avatar de Oraxtar
Oraxtar Oraxtar is offline
Registrado
 
Registrado: sep 2006
Posts: 4
Poder: 0
Oraxtar Va por buen camino
Saludos ilichhernandez respecto a la pregunta que me haces, si, el campo que tengo en mi tabla medicamento fecha_cad es de tipo date, y el parametro fecha1 es de tipo datetime (me parece que asi lo cheque en otro tema parecido, lo utilice en otra query para generar otro reporte y me funciono perfectamente). y en lo referente a el formato me parece que es '01/05/06'.

Espero me puedas ayudar, que estoy medio confundido
Responder Con Cita
  #5  
Antiguo 01-10-2006
Avatar de Oraxtar
Oraxtar Oraxtar is offline
Registrado
 
Registrado: sep 2006
Posts: 4
Poder: 0
Oraxtar Va por buen camino
Que onda vtdeleon, gracias por tu respuesta, pero me marca un error, probe el codigo que me sugeriste, pero me dice que la columna fecha1 es desconocida.

Código Delphi [-]
frmrepcad.IBQuery1.Close;
    frmrepcad.IBQuery1.SQL.Clear;
    frmrepcad.IBQuery1.SQL.Add('select * from medicamento where fecha_cad between :fecha1 and fecha1+30');
    frmrepcad.IBQuery1.ParamByName('fecha1').AsDateTime:=strtodatetime(fecha);
    frmrepcad.IBQuery1.open;
    frmrepcad.QuickRep1.Preview;

despues probe con :
Código Delphi [-]
frmrepcad.IBQuery1.SQL.Add('select * from medicamento where fecha_cad between :fecha1 and :fecha1+30');

poniendole (, y me decia que el campo fecha1+30 no existe.

La verdad, es la primera vez que manejo delphi e IB. Agradeceria la ayuda que me puedan dar.
pd. gracias por lo de las etiquetas.
Responder Con Cita
  #6  
Antiguo 01-10-2006
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 19
ilichhernandez Va por buen camino
En este link aparecen algo que te puede servir.
http://groups.msn.com/ce77cj5fut58ai...6&all_topics=1
__________________
[Lo que a veces es tan facil, a veces parece imposible]
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
Como restar fechas User_Baja_2 Varios 11 17-09-2011 21:58:47
Restar Fechas jsanchez OOP 2 08-02-2006 19:29:55
Restar fechas majosf Conexión con bases de datos 11 16-11-2005 16:27:18
Restar fechas Acker Varios 4 07-11-2005 14:11:51
restar dos fechas seken Varios 4 15-08-2003 23:34:56


La franja horaria es GMT +2. Ahora son las 03:30:21.


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