Consulta por mês (SQL)
Preciso otimizar uma consulta de aniversariantes. Hoje tenho mais de 20 linhas, com um select diferente para cada mês. Preciso de um select onde informo o mês, e ele procure todos os aniversariantes daquele mês.
Por exemplo mês 1, todos os aniversariantes compreendidos entre 1 de janeiro e 31 de janeiro.
Valew..
Por exemplo mês 1, todos os aniversariantes compreendidos entre 1 de janeiro e 31 de janeiro.
Valew..
Gdonati
Curtidas 0
Respostas
Motta
02/10/2003
depende do banco,
sendo paradox vc pode usar a function Extract
veja detalhes no help
localsql.hlp
sendo paradox vc pode usar a function Extract
veja detalhes no help
localsql.hlp
GOSTEI 0
Tiocassio
02/10/2003
pode fazer entre datas desta forma
SELECT * FROM table WHERE data BETWEEN 01/10/2004 AND 31/10/2004
GOSTEI 0
Edineidaniel
02/10/2003
Olá,
Posso te propor um Select entre intervalos de datas, que funciona bem:
Só vc vai ter que informar o intervalo...
No Evento OnClick do Button
query1.close;
query1.SQL.Clear;
query1.sql.add(´select * from aniversariantes´);
query1.sql.add(´where Datanasc >= :data1 and Datanasc <=: data2´);
query1.sql.add(´order by datainicial´);
query1.params[0].asdatetime:=strtodate(Edit2.text);
query1.params[1].asdatetime:=strtodate(Edit3.text);
query1.open;
query1.active:=true;
Vc pode mostrar os dados em um dbgrid..
t+
Edinei
Posso te propor um Select entre intervalos de datas, que funciona bem:
Só vc vai ter que informar o intervalo...
No Evento OnClick do Button
query1.close;
query1.SQL.Clear;
query1.sql.add(´select * from aniversariantes´);
query1.sql.add(´where Datanasc >= :data1 and Datanasc <=: data2´);
query1.sql.add(´order by datainicial´);
query1.params[0].asdatetime:=strtodate(Edit2.text);
query1.params[1].asdatetime:=strtodate(Edit3.text);
query1.open;
query1.active:=true;
Vc pode mostrar os dados em um dbgrid..
t+
Edinei
GOSTEI 0
Gdonati
02/10/2003
isso eu sei, acontece que eh ANIVERSARIO, ou seja, se vc nasceu no dia 10/10/2000 ou dia 10/10/1985, seu aniversário será em outubro, e eh isso que eu preciso saber :)
Preciso de uma consulta que eu informe apenas o MES.
Preciso de uma consulta que eu informe apenas o MES.
GOSTEI 0
Luizfernando777
02/10/2003
Tenta o seguinte:
monta a query
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add( ´ SELECT Dt_Nasc, Codigo, Nome ´);
SQL.Add( ´ FROM Clientes ´);
SQL.Add( ´ WHERE ( Dt_Nasc IS NOT NULL ) ´);
SQL.Add( ´ ORDER BY Dt_Nasc ´);
Prepare;
Open;
end;
na propriedade da Query
Filtered := True;
no evento onFilterRecord
var
Dia, Mes, Ano : Word;
begin
DecodeDate(Query1Dt_Nasc.Value, Ano, Mes, Dia);
Accept := ( Mes = 3 );
end;
monta a query
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add( ´ SELECT Dt_Nasc, Codigo, Nome ´);
SQL.Add( ´ FROM Clientes ´);
SQL.Add( ´ WHERE ( Dt_Nasc IS NOT NULL ) ´);
SQL.Add( ´ ORDER BY Dt_Nasc ´);
Prepare;
Open;
end;
na propriedade da Query
Filtered := True;
no evento onFilterRecord
var
Dia, Mes, Ano : Word;
begin
DecodeDate(Query1Dt_Nasc.Value, Ano, Mes, Dia);
Accept := ( Mes = 3 );
end;
GOSTEI 0