Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-03-2005
cepriego cepriego is offline
Registrado
 
Registrado: feb 2005
Posts: 8
Poder: 0
cepriego Va por buen camino
Cool Delphi, Acces, Fechas y SQL

Hola qué tal a todos.

Tengo el siguiente problema, espero alguien pueda ayudarme. Tengo una base de datos Access a la cual accedo desde delphi perfectamente; sin embargo, cuando trato de hacer consultas sql que impliquen el uso de FECHAS todo se vuelve un desastre.

Intento realizar una busqueda entre un rango de fechas y no me devuelve ningun resultado. Por ejemplo

Intente con esto:
SELECT * FROM PROYECTOS WHERE FECHAINICIO BETWEEN #31/08/2004# AND #09/09/2004#

con esto
SELECT * FROM PROYECTOS WHERE FECHAINICIO BETWEEN '31/08/2004' AND '09/09/2004'

Igual las combine y nada.

Alguien sabe como puedo solucionar esto. En ocasiones si me devuelve datos pero son erróneos.

Desde ya agradezco todas sus respuestas
Responder Con Cita
  #2  
Antiguo 20-03-2005
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 fechas es mm/dd/yyyyy. Si utilizas parámetros te ahorras este problema.

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-03-2005
cepriego cepriego is offline
Registrado
 
Registrado: feb 2005
Posts: 8
Poder: 0
cepriego Va por buen camino
Ya lo he hecho

Pues mira, ya he intentado igualmente con el formato "mm/dd/yyyy" y no me funciona.

Cita:
Empezado por marcoszorrilla
En SQL el formato de fechas es mm/dd/yyyyy. Si utilizas parámetros te ahorras este problema.


Un Saludo.
Responder Con Cita
  #4  
Antiguo 21-03-2005
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
He creado el siguiente ejemplo conectándome con ADO y funciona sin ningún problema.
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 begin
  With Adoquery1 do
  begin
  Close;
  Sql.Clear;
  Sql.Add('Select * From [Cursos Academia] ');
  Sql.Add('Where Inicio between #10/01/2002# and #12/31/2002#');
  Sql.Add('Order by Inicio');
  ShowMessage(Sql.Text);
  open;
  end;
 end;

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 26-03-2005
lroblesco lroblesco is offline
Miembro
 
Registrado: ene 2005
Ubicación: Baja California Sur, Mexico
Posts: 77
Poder: 20
lroblesco Va por buen camino
Fechas

Como ha dicho Marcos el formato es #mm/dd/yyyy#. Yo he usado la misma sentencia y me ha funcionado. Con la aclaracion de que el campo fecha declarado en mi BD es una fecha corta. Intenta esto, sino para es este foro,para preguntar.
Saludos

Código:
 
 fecha1:='#31/08/2004#';
 fecha2:='#09/09/2004#';
 with query do
   begin
    sql.text:='SELECT * FROM PROYECTOS WHERE FECHAINICIO BETWEEN '+fecha1+' and ' +fecha2+' order by fechainicio';
  open;
 end;
__________________
No siempre el mas veloz es el que gana la carrera

Última edición por lroblesco fecha: 26-03-2005 a las 07:43:54.
Responder Con Cita
  #6  
Antiguo 21-07-2005
pepe2000 pepe2000 is offline
Miembro
 
Registrado: dic 2003
Ubicación: Cajamarca
Posts: 93
Poder: 21
pepe2000 Va por buen camino
Angry Si, pero...

Hola
¿Cual es el procedimiento para utilizar el formato dd/mm/yyyy en las consultas de access; y sin necesidad de cambiar la configuracion del sistema operativo?,
Utilizando parametros sería una forma, pero no hay una manera directa de decirle a access
Select * from tabla where fecha=#24/06/2005#

????
Un saludo y Gracias por anticipado.
Responder Con Cita
  #7  
Antiguo 21-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
la función formatdatetime podría funcionar
__________________

Responder Con Cita
  #8  
Antiguo 25-07-2005
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Con SQL podemos formatear el campo de la fecha a yyyyMMdd de forma que se puedan comparar como si fueran cadenas. Este truco lo vengo utilizando desde hace mucho tiempo y no me ha dado errores:

select *
from tabla
where format(campo, 'yyyyMMdd') >= format(parametro_ini, 'yyyyMMdd') and
format(campo, 'yyyyMMdd') <= format(parametro_fin, 'yyyyMMdd')


Donde parametro_ini y parametro_fin seran dos parámetros que le puedes pasar al TQuery desde programa.
Responder Con Cita
  #9  
Antiguo 27-07-2005
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
format(campo,'ddmmyyyy') no me funciona en SQL Server
me dice que la función format no es un nombre de función conocido....
¿existe algo similiar para SQL Server?
__________________

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 01:55:02.


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