Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Formato de fecha (https://www.clubdelphi.com/foros/showthread.php?t=44860)

GustavoCruz 16-06-2007 17:19:04

Formato de fecha
 
hola a todos,

queriendo trabajar con fechas en bases de datos msaccess, he aprendido a formatear los campos gracias a los aportes de todos los que visitan Club Delphi; ahora tengo una inquietud al utiliazar la siguiente sentencia
Código SQL [-]
select format(pafechaacuerdo,'mm/yyyy') from patable group by format(pafechaacuerdo,'mm/yyyy') 
order by format(pafechaacuerdo,'mm/yyyy')
los datos me los está arrojando teniendo en cuenta 'mm/yyyy' y no la fecha como tal pafechaacuerdo, si alguien sabe lo que ocurre le agradecería me pudiera explicar.

poliburro 16-06-2007 18:08:46

Cita:

Empezado por GustavoCruz
hola a todos,

queriendo trabajar con fechas en bases de datos msaccess, he aprendido a formatear los campos gracias a los aportes de todos los que visitan Club Delphi; ahora tengo una inquietud al utiliazar la siguiente sentencia

Código SQL [-]select format(pafechaacuerdo,'mm/yyyy') from patable group by format(pafechaacuerdo,'mm/yyyy')
order by format(pafechaacuerdo,'mm/yyyy')



los datos me los está arrojando teniendo en cuenta 'mm/yyyy' y no la fecha como tal pafechaacuerdo, si alguien sabe lo que ocurre le agradecería me pudiera explicar.


Eso lo hace debido a que tu sentencia le están diciendo a access que considere la fecha con el formato 'mm/yyyy',

Que es exactamente lo que necesitas?

GustavoCruz 17-06-2007 19:04:39

Formato de fecha
 
A ver, lo que necesito que haga la consulta es que me muestre los datos ordenados por fecha, por ejemplo (utilizando format(fecha,'mm/yyyy')):
01/2007
02/2007
01/2008

pero la sentencia me muestra los siguientes datos:
01/2007
01/2008
02/2007

Lepe 17-06-2007 19:23:07

Tiene toda la pinta de que ese campo, en la Base de datos, está definido como Texto, y entonces la ordenación que se hace no es la esperada. Lo correcto sería cambiar el tipo de campo a Date/Time.

Saludos

GustavoCruz 17-06-2007 20:18:23

es un campo tipo fecha de lo contrario no utiliazaría format(fecha,'mm/yyyy')
créate una base con una tabla y un campo tipo date/time inserta los datos que están arriba ("fechas") y ejecuta la consulta que he puesto y me cuentas...

Caral 17-06-2007 21:05:32

Hola
Código Delphi [-]
ADOQuery1.Sql.Text:= 'select pafechaacuerdo from patable';
ADOQuery1.Sql.Add('group by pafechaacuerdo');
ADOQuery1.Sql.Add('order by pafechaacuerdo');
ShortDateFormat := 'mm/yyyy';
Saludos

GustavoCruz 25-06-2007 19:36:51

Formato de Fecha
 
Tal parece que utilizar la función Format para dar formato a un campo fecha y luego ordenar por este no va a dar los resultados esperados, será esta una falla "Tonta de SQL :confused: ", que trabajar con campos tipo fecha sea tan complicado...

Lepe 25-06-2007 21:34:06

No sé por qué no he caido antes.

Código SQL [-]
select format(pafechaacuerdo,'mm/yyyy') from patable group by format(pafechaacuerdo,'mm/yyyy') 
order by pafechaacuerdo

El problema es el order by, que estas convirtiendo la fecha a texto, por tanto, la ordenación se hace por caracteres (letras).

PD: La función "Format" no es propia del SQL estandard, por tanto no he podido probarlo (en Firebird 1.5 tampoco viene definida).

Saludos

GustavoCruz 26-06-2007 04:39:11

Formato de fecha
 
Hola Lepe, ya probé guardando los datos como texto y los organiza como yo quiero, la cuestión es que format(pafechaacuerdo,'mm/yyyy') no me arroja los datos como yo deseo, la función consiste en mostrar los datos según el criterio que tu le des, en mi caso yo solamente necesito los meses, no me interesan los días, la solución que le doy es crear una tabla almacenar los datos tipo texto y luego realizar la consulta...:o
Código SQL [-]
select format(pafechaacuerdo,'mm/yyyy') from patable group by format(pafechaacuerdo,'mm/yyyy') order by pafechaacuerdo
gracias por tu intervención...:)


La franja horaria es GMT +2. Ahora son las 09:20:22.

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