FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
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:
|
#3
|
|||
|
|||
Ya lo he hecho
Pues mira, ya he intentado igualmente con el formato "mm/dd/yyyy" y no me funciona.
Cita:
|
#4
|
||||
|
||||
He creado el siguiente ejemplo conectándome con ADO y funciona sin ningún problema.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#5
|
|||
|
|||
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. |
#6
|
|||
|
|||
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. |
#7
|
||||
|
||||
la función formatdatetime podría funcionar
__________________
|
#8
|
||||
|
||||
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. |
#9
|
||||
|
||||
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?
__________________
|
|
|
|