Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-01-2009
manueltp manueltp is offline
Miembro
 
Registrado: mar 2008
Posts: 29
Poder: 0
manueltp Va por buen camino
Exclamation Consulta con fechas en firebird error!!!

hola que tal aki de nuevo con este problema de fechas....
quiero hacer un reporte con una consulta de rango de fechas.....
hago primero la consulta en la base de datos con sql y este codigo::

SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA
from PACIENTES
WHERE FECHA >= 01/01/2009 AND FECHA <=18/01/2009
y me da error ....

lo cambie asi....

SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA
from PACIENTES
WHERE FECHA >= CAST('01/01/2009' as date)
y este si me da resultados pero yo kiero un rango de fechas y pongo este:

SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA
from PACIENTES
WHERE FECHA >= CAST('01/01/2009' as date) and
FECHA <= CAST('18/01/2009' as date)

y me da error: ISC ERROR MESSAGE:
conversion error from string "18/01/2009"

no acepta dos conversiones en una misma linea o que sera? ....
es que no se como se hacen entonces las consultas para un rango de fechas
se los agradeceria demasido si me ayudaran ,....
me interesa demasiado.
Responder Con Cita
  #2  
Antiguo 19-01-2009
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cuando escribas valores de fecha literales para ser procesados por algún motor SQL, utiliza el formato ISO (aaaa-mm-dd), ya que de otra manera no tendrás seguridad de cuál de las cifras tomará como mes y cuál como día.

Saludos.

Al.
Responder Con Cita
  #3  
Antiguo 19-01-2009
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
Yo utilizo siempre el formato dd/mm/aaaa y no he tenido ningun problema.
Responder Con Cita
  #4  
Antiguo 19-01-2009
manueltp manueltp is offline
Miembro
 
Registrado: mar 2008
Posts: 29
Poder: 0
manueltp Va por buen camino
Question

gracias

yo utilo el IBOConsole y cuando hago insercion de fechas me acepta el dd/mm/aaaa, porque me pone asi al moneto de querer ingresar una fechas : / / .

entonces que cambios hago?????
no hay manera de realizar esta consulta de alguna manera con este formato??? o que modificacion le hago a la consulta...
Responder Con Cita
  #5  
Antiguo 19-01-2009
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 19
Kipow Va por buen camino
solo cambia el formato por mm/dd/aaaa

Código SQL [-]
SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA
from PACIENTES
WHERE FECHA >= CAST('01/01/2009' as date) and 
FECHA <= CAST('01/18/2009' as date)
Responder Con Cita
  #6  
Antiguo 19-01-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por manueltp Ver Mensaje
gracias

yo utilo el IBOConsole y cuando hago insercion de fechas me acepta el dd/mm/aaaa, porque me pone asi al moneto de querer ingresar una fechas : / / .

entonces que cambios hago?????
no hay manera de realizar esta consulta de alguna manera con este formato??? o que modificacion le hago a la consulta...
Hola manueltp, de la forma que te ha indicado Al debería funcionarte la consulta por un rango de fechas, si lo haces de la otra forma tienes que pasarle con formato mm/dd/yyyy, el Cast no es necesario.

Código SQL [-]
SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA
from PACIENTES
WHERE FECHA >= '01/01/2009' AND FECHA <='01/18/2009'

SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA
from PACIENTES
WHERE FECHA >= '2009-01-01' AND FECHA <='2009-01-18'

//también puedes utilizar Between
 
SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA
from PACIENTES
WHERE FECHA Between '01/01/2009' AND '01/18/2009'

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 20-01-2009
manueltp manueltp is offline
Miembro
 
Registrado: mar 2008
Posts: 29
Poder: 0
manueltp Va por buen camino
MUCHAS GRACIAS POR SU AYUDA , YA LO HICE Y SI ME DA LA CONSULTA

SE LOS AGRADEZCO ...
AHORA LA DUDA SERIA Y AL MOMENTO DE HACER LA CONSUTLA EN DELPHI
COMO DEBO ESPECIFICAR LOS CARACTERES O CON QUE FUNCION LA DEBO DE HACER ......

TENGO ESTE CODIGO ::

Código Delphi [-]
procedure TFFechas.Button1Click(Sender: TObject);
begin
      //ShortDateFormat := 'mm/dd/yyyy';
      try
         FReporte:=TFReporte.Create(self);
         FReporte.QryReporte1.SQL.Add('SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA ');
         FReporte.QryReporte1.SQL.Add('FROM PACIENTES ');
         FReporte.QryReporte1.SQL.Add('WHERE  FECHA >= '+ DateToStr(DTP1.Date)+' AND  FECHA <= '+ DateToStr(DTP2.Date)+' ORDER BY FECHA');
         FReporte.QryReporte1.Open;
         ShortDateFormat := 'mm/dd/yyyy';
         //QRPlaGen.Titulo.text := 'Hojas de Pago de Planillas';
         FReporte.RVP1.ExecuteReport(ReporteF1);
      finally
         FReporte.RVP1.Destroy;
      end;
end;


aver si esta bien o no
se los agradeceria.
Responder Con Cita
  #8  
Antiguo 20-01-2009
brandolin brandolin is offline
Miembro
 
Registrado: jul 2003
Ubicación: Mendoza
Posts: 324
Poder: 21
brandolin Va por buen camino
yo normalmente hago lo siguiente...
Código Delphi [-]
try
         FReporte:=TFReporte.Create(self);
         FReporte.QryReporte1.SQL.Add('SELECT FECHA, NOMBRE, MEDICO, PRIMERAVEZ, PARTICULAR, ASEGURADORA ');
         FReporte.QryReporte1.SQL.Add('FROM PACIENTES ');
         FReporte.QryReporte1.SQL.Add(format('WHERE  FECHA >= ''%s'' AND  FECHA <= ''%s'' ORDER BY FECHA', [DateToStr(DTP1.Date), DateToStr(DTP2.Date)]));
         FReporte.QryReporte1.Open;
         ShortDateFormat := 'mm/dd/yyyy';
         //QRPlaGen.Titulo.text := 'Hojas de Pago de Planillas';
         FReporte.RVP1.ExecuteReport(ReporteF1);
      finally
         FReporte.RVP1.Destroy;
      end;

solo introduzco la funcion format y me da mas claridad en la sentencia...
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
Consulta de fechas y horas con Firebird Jordy Firebird e Interbase 5 07-10-2004 16:51:52
Consulta con Fechas inetplus SQL 3 08-04-2004 21:09:41
Consulta por fechas omy SQL 2 16-12-2003 19:40:14
Consulta de fechas YolandaM SQL 6 26-07-2003 21:10:34
Consulta con Fechas cmgenny SQL 8 20-06-2003 21:48:25


La franja horaria es GMT +2. Ahora son las 07:07:27.


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