PDA

Ver la Versión Completa : como tomo el mes de una fecha??


ale_metall
21-07-2008, 21:19:02
buenas gente... esta vez consulto de q forma se puede realizar una consulta tomando el mes en curso.
Es decir, necesito hacer una consulta q me traiga los registros del mes en curso, pero como tomo solo el mes de una fecha y como lo comparo?? el campo es de tipo date.
trabajo con delphi6 y paradox7.

gracias...

coso
21-07-2008, 21:48:57
hola, echale un vistazo a la funcion decodedate

EDITO : demasiado rapido. Eso es solo en delphi, no sql

donald shimoda
21-07-2008, 21:54:59
buenas gente... esta vez consulto de q forma se puede realizar una consulta tomando el mes en curso.
Es decir, necesito hacer una consulta q me traiga los registros del mes en curso, pero como tomo solo el mes de una fecha y como lo comparo?? el campo es de tipo date.
trabajo con delphi6 y paradox7.

gracias...

Obtenes el dia de incio del mes y el dia final del mes en Delphi, y lo metes en los parámetros del query:

select * from whatever where dia between :dia_inicio and :dia_fin

Como resolverlo en el sql, pasandole ;por ejemplo un mes determinado NI IDEA, seguro se puede pero excede mis conocimientos. :D

Saludos.

coso
21-07-2008, 22:00:48
segun este (http://www.rinconcitodelphi.com/articulos/FechaHoraSQL/Abajo.htm) link, es usando la funcion Month

donald shimoda
21-07-2008, 22:03:11
segun este (http://www.rinconcitodelphi.com/articulos/FechaHoraSQL/Abajo.htm) link, es usando la funcion Month

No camina el vinculo. :(

coso
21-07-2008, 22:07:43
si, ya lo edite. Y si, funciona select Month(DATA) as m from AGENDA;

enecumene
21-07-2008, 22:10:52
quizas algo así:

var
Mes: string;
begin
Mes := DateToStr(MonthOf(Now));
Query1.SQL.Text := ' select * from whatever where dia between :dia_inicio and :dia_fin';
Query1.Parameters.ParamByName('dia_inicio').Value := Concat(Edit1.Text,'/',Mes,'/',Año);
Query1.Parameters.ParamByName('dia_fin').Value := Concat(Edit2.Text,'/',Mes,'/',Año);
Query1.Open
end;


lo hice al vuelo no lo he probado pero es una idea.

Saludos.

eduarcol
21-07-2008, 22:20:00
si lo quieres hacer en la consulta podrias hacer algo asi:

Select * from mitabla where extract(month from Fecha) = :mes

hecospina
22-07-2008, 00:11:26
Alguna vez intente hacerlo con una sentencia sql en paradox y no encontre la forma de tomar la fecha del sistema, adicione un campo a la tabla con el "now" como valor por defecto y lo tome de alli
En firebird seria tomara extract(month from current_date) y listo,
pero siendo en paradox eduarcol te dio la instruccion y puedes adicionar el campo como lo hice yo:)

Casimiro Notevi
22-07-2008, 08:00:12
Pequeño tutorial de funciones de fecha en firebird.
(http://intitec.com/varios/Firebird_FuncionesDeFechas.pdf)

eduarcol
22-07-2008, 14:58:51
Pequeño tutorial de funciones de fecha en firebird.
(http://intitec.com/varios/Firebird_FuncionesDeFechas.pdf)

Esta buenisimo casimiro, gracias por el aporte me servira mucho.

Pero creo que estamos hablando de Paradox

Casimiro Notevi
22-07-2008, 18:24:52
Esta buenisimo casimiro, gracias por el aporte me servira mucho.

Pero creo que estamos hablando de Paradox


jejeje... pequeño despiste... pero me alegra de que te sirva :)

ale_metall
22-07-2008, 22:01:39
Gracias gente, con la ayuda de todos lo solucione de la sigueinte manera..



Código Delphi [-] (http://www.clubdelphi.com/foros/#)fecha:=now;
decodedate(fecha, ano, mes, dia);



asi tomo el mes de la fecha actual.



Código Delphi [-] (http://www.clubdelphi.com/foros/#)query1.parambyname('mes').value:=mes;

Parametro de la consulta.



Código SQL [-] (http://www.clubdelphi.com/foros/#)where extract(month from FechaPago)=:mes



comparo el parametro extrayendo el mes del campo q me interesa compara..




gracias a los que me respondieron y me pasaron todas esas ideas..

un abrazo.