como capturar o mes de um campo
tenho o campo ´vencimento´ numa tabela (formato dd/mm/aaaa). no botao ´gravar´ do form, gostaria que no campo ´mes´ (integer) fosse armazenado o numero do mes digitado no campo ´vencimento´.
Ex se VENCIMENTO = 22/12/2004 entao o campo MES = 12
Ex se VENCIMENTO = 22/12/2004 entao o campo MES = 12
Bebeketo
Curtidas 0
Respostas
Edccpcoc2003
22/06/2004
Você pode selecionar a tabela onde está o campo vencimento, e dar um update nela, passando para o campo mês o comando
Extract(Month from Vencimento) Espero ter ajudado
GOSTEI 0
Btovix
22/06/2004
hei!!! esse tópico tem uma dúvida parecida com a minha.. só que eu quero é o dia ao invés do mês alguém sabe como fazer isso??
[]´s :wink:
[]´s :wink:
GOSTEI 0
Vinicius2k
22/06/2004
Colega,
Vc tem duas alternativas :
1 - pode fazer uso da função [b:ed8eba7d72]MonthOf[/b:ed8eba7d72] do Delphi para extrair o mes para uma variável e/ou gravá-la no banco, por exemplo:
[code]Tabela.FieldByName(´mes´).AsInteger:= MonthOf(date);
Para uso das funções DayOf, MonthOf e YearOf, acrescente a unit [b:ed8eba7d72]DateUtils[/b:ed8eba7d72] na lista de uses...
2 - se este campo na tabela está sendo gravado apenas para que sejam feitos filtros, etc... pode não existir necessidade de que ele exista, pois é possível usar instruções SQL que trariam apenas os registros desejados considerando uma data com os elementos separados, por exemplo, uma rotina de consulta de aniversariantes do dia:
[code]uses DateUtils;
procedure TForm1.FormActivate(Sender: TObject);
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add(´select * from CLIENTES´);
SQL.Add(´where EXTRACT( DAY from DATANASCIMENTO ) = :dia´);
SQL.Add(´and EXTRACT( MONTH from DATANASCIMENTO ) = :mes´);
SQL.Add(´order by NOME´);
ParamByName(´dia´).AsInteger:= DayOf(date);
ParamByName(´mes´).AsInteger:= MonthOf(date);
Prepared:= True;
Open;
end;
end;[/code]
Espero ter ajudado...
T+
Vc tem duas alternativas :
1 - pode fazer uso da função [b:ed8eba7d72]MonthOf[/b:ed8eba7d72] do Delphi para extrair o mes para uma variável e/ou gravá-la no banco, por exemplo:
[code]Tabela.FieldByName(´mes´).AsInteger:= MonthOf(date);
Para uso das funções DayOf, MonthOf e YearOf, acrescente a unit [b:ed8eba7d72]DateUtils[/b:ed8eba7d72] na lista de uses...
2 - se este campo na tabela está sendo gravado apenas para que sejam feitos filtros, etc... pode não existir necessidade de que ele exista, pois é possível usar instruções SQL que trariam apenas os registros desejados considerando uma data com os elementos separados, por exemplo, uma rotina de consulta de aniversariantes do dia:
[code]uses DateUtils;
procedure TForm1.FormActivate(Sender: TObject);
begin
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add(´select * from CLIENTES´);
SQL.Add(´where EXTRACT( DAY from DATANASCIMENTO ) = :dia´);
SQL.Add(´and EXTRACT( MONTH from DATANASCIMENTO ) = :mes´);
SQL.Add(´order by NOME´);
ParamByName(´dia´).AsInteger:= DayOf(date);
ParamByName(´mes´).AsInteger:= MonthOf(date);
Prepared:= True;
Open;
end;
end;[/code]
Espero ter ajudado...
T+
GOSTEI 0
Btovix
22/06/2004
Muito obrigado usei sua segunda alternativa e ela me atendeu completamente ;) abração!!
GOSTEI 0