Selecionar Registros por MÊS

Delphi

25/11/2003

Tenho uma tabela com os campos NomeCliente e DataNascimento, Gostaria de saber onde posso encontrar um componente que eu possa informar somente o mês/ano, já tentei os componentes do RxLib, mas, os componentes de manipulação de data só informa a data total dd/mm/aa. E diante destes dois campos NomeCliente e DataNascimento, ao informar o mês e ano de nascimento do cliente, fosse selecionado todos os clientes nascidos no mês e ano informado, independente do dia de nascimento, ou seja, se eu irformar: Abr/1975 seria mostrados todos os clientes que nasceram em qualquer dia do mês de Abril do ano de 1975.

Desde já agradeço.


N_valdo

N_valdo

Curtidas 0

Respostas

Marcelo.c

Marcelo.c

25/11/2003

Tente utilizar uma query:

Select nome, extract(month from campodata)||´/´||extract(year from campodata) as mesano where mesano=:data;


GOSTEI 0
Wallacest

Wallacest

25/11/2003

Use o DECOTEDATE que serve para quebrar a DATA
procure o Help do delphi sobre ENCODE E DECODE DATE


GOSTEI 0
Luineumann

Luineumann

25/11/2003

até onde eu sei não há um componente deste tipo

você deverá simular este compoente num maskedit, com máscara por exemplo !99/9999;1;_

no onexit da tabela vc faz, por exemplo

procedure TForm1.MaskEdit1Exit(Sender: TObject);
var
mm, aa : word;
begin
mm := strtoint(copy(maskedit1.Text, 1, 2));
if (mm < 1) or (mm > 12)
then begin
showmessage(´erro´);
exit;
end;
aa := strtoint(copy(maskedit1.Text, 4, 4));

table1.filter := ´(DataEntrada >= ´
+ quotedstr(formatdatetime(´dd/mm/yyyy´, encodedate(aa, mm, 1)))
+ ´)´;
// quotedstr é uma fc que devolve o argumento entre aspas simples

mm := mm + 1;
if mm = 13
then begin
mm := 1;
aa := aa + 1;
end;
table1.filter := table1.filter
+ ´and (DataEntrada <= ´
+ quotedstr(formatdatetime(´dd/mm/yyyy´, encodedate(aa, mm, 1) - 1))
+ ´)´;
table1.filtered := true;


GOSTEI 0
Luizfernando777

Luizfernando777

25/11/2003

Montar um SQL
Select * from cliente
where extract( month from nasc )= 1 and
extract( year from nasc ) = 1974
order by nome


GOSTEI 0
POSTAR