PDA

Ver la Versión Completa : como extraer la el año de una fecha en un sentencia SQL?


viajero2015
30-01-2004, 22:11:50
Hola colegas.
Estoy haciendo una consulta y quiero extraer de la consulta el año de la fecha que esta en la consulta y comparar ese año con el que el usuario entra, que funciòn puedo usar?, que funciòn hay en SQL para resolver este mal problema para mi.
aqui les envio parte del codigo de la sentencia SQL.

CustomerData.querypagos_personal.SQL[2]:='WHERE pagos_personal.Mesinicial='''+ cmbmesinicial.Text +''' and pagos_personal.Mesfinal='''+ cmbmesfinal.Text +''' and YearOf(pagos_personal.anno)='''+ edate.Text +'''';


cuando mando activar esta consulta me da un error, me dice esto.
Capability not supported.

alguien mepodra ayudar?.

marcoszorrilla
30-01-2004, 22:19:43
Creo recordar de otras consultas que has realizado que trabajas con Paradox, si es así tienes que utilizar lo que sigue:

Select Extract(Year from fecha)
from Factura

Un Saludo.

jachguate
30-01-2004, 22:31:58
No mencionas el motor en el que trabajas. Marcos apunta una solución válida para interbase/firebird. En oracle sería

Select to_number(to_char(fecha, 'yyyy'))
from factura;

Hasta luego.

;)

viajero2015
31-01-2004, 20:00:26
hola amigos gracias por su ayuda, pero no se ha resuelto el problema sigue, probe con select extract(Year from fecha) y nada, necesito extraer el anno de esa fecha para compararla con un que entra el usuario, estoy trabajando con el motor BDE con tablas paradox.

alguien me pudiera seguir ayudando. estoy detenido en el sistema por eso.
sin mas TOMAS

marcoszorrilla
31-01-2004, 21:59:59
Suponiendo que el usuario introduzca el año en un Edit, aquí te pongo un ejemplo:


procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Clear;
Query1.Sql.Add('Select * From Employee');
Query1.Sql.Add('Where (Extract(Year from HireDate)) = '+ QuotedStr(edit1.text));
Query1.Active:=True;
end;


Un Saludo.

bosamel
06-01-2005, 21:25:21
el formato con que se guarda la fecha es dd-mm-aa dentro de las tablas paradox, pero para extraerlas desde Sql el formato es mm-dd-aa, si te das cuenta las comparaciones no son iguales, hay una funcion en delphi que se llama ShortDateFormat cuyo formato es el siguiente ShortDateFormat:= 'm/d/yyyy';
pero puedes extraer el dia solamente o el año, el resto puedes hacerlo con codigo, me avisas como te fue bosamel@hotmail.com