Consulta de datas (Aniversariantes da semana)
Olá pessoal. estou com um problema aqui. Gostaria de faszer uma consulta na minha tabela
da seguinte maneira:
consulta:
-----------------------------------------------------------------------
´selecione todos os Eleitores que fazem aniversário na semana atual´
-----------------------------------------------------------------------
- Para selecionar Todos os aniversariantes do dia eu fiz o seguinte:
- Porém a consulta de aniversariantes da semana nao tenho idéia de como fazer
Delphi: 7
Banco : Firebird 1.5
para isso eu teria que filtrar caracteres ou fazer algum calculo?
Se alguem tiver um exemplo ai pra eu me guiar, por favor, postem aqui.
Abraços!
da seguinte maneira:
consulta:
-----------------------------------------------------------------------
´selecione todos os Eleitores que fazem aniversário na semana atual´
-----------------------------------------------------------------------
- Para selecionar Todos os aniversariantes do dia eu fiz o seguinte:
DM.Tbl_Eleitores.Close; DM.Tbl_Eleitores.SelectSQL.Clear; DM.Tbl_Eleitores.SelectSQL.Add(´SELECT * FROM ELEITORES WHERE NASCIMENTO = :hoje ´); DM.Tbl_Eleitores.Params[0].AsString; DM.Tbl_Eleitores.ParamByName(´hoje´).AsDateTime:= Date; DM.Tbl_Eleitores.Open;
- Porém a consulta de aniversariantes da semana nao tenho idéia de como fazer
Delphi: 7
Banco : Firebird 1.5
para isso eu teria que filtrar caracteres ou fazer algum calculo?
Se alguem tiver um exemplo ai pra eu me guiar, por favor, postem aqui.
Abraços!
Mahdak
Curtidas 0
Respostas
Motta
08/03/2006
Veja se isto ajuda :
http://forum.devmedia.com.br/viewtopic.php?t=59365&start=0&sid=ff4325b5c70a5f7e442f5478e0bcbef9
http://forum.devmedia.com.br/viewtopic.php?t=59365&start=0&sid=ff4325b5c70a5f7e442f5478e0bcbef9
GOSTEI 0
Mahdak
08/03/2006
ok, vou dar uma olhada e ja dou retorno... po enquanto queria concertar o que disse logo acima em relação aos aniversariantes do dia...
var StrDia,StrMes :string; Ano, Mes, Dia : word; begin DecodeDate(Now, Ano, Mes,Dia); StrDia := IntToStr(Dia); StrMes := IntToStr(Mes); DM.Tbl_Eleitores.Close; DM.Tbl_Eleitores.SelectSQL.Clear; DM.Tbl_Eleitores.SelectSQL.Add(´SELECT * FROM ELEITORES WHERE Extract(Day From NASCIMENTO) = ´+ StrDia + ´ AND Extract(Month From Nascimento)= ´+StrMes); DM.Tbl_Eleitores.Open; end;
GOSTEI 0
Mahdak
08/03/2006
Pessoal, questão resolvida
-------------------------------
Aniversáriantes entre duas datas:
---------------------------------------
Espero ter ajudado, aqui funcionou certinho...
Abraço a todos!
-------------------------------
Aniversáriantes entre duas datas:
---------------------------------------
{ filtro para pegar apenas o dia do Mask Edit} function RetornaDia(Valor: string): string; var PosicaoPonto: integer; begin PosicaoPonto := Length(Valor); while (Valor[PosicaoPonto] <> ´/´) and (PosicaoPonto >= 1) do dec(PosicaoPonto); result := Copy(Valor, PosicaoPonto - 2, Length(Valor) - PosicaoPonto); end; { filtro para pegar apenas o Mes do Mask Edit} function RetornaMes(Valor: string): string; var PosicaoPonto: integer; begin PosicaoPonto := Length(Valor); while (Valor[PosicaoPonto] <> ´/´) and (PosicaoPonto >= 1) do dec(PosicaoPonto); result := Copy(Valor, PosicaoPonto + 1, Length(Valor) + PosicaoPonto); end; procedure TED.Btn_OKClick(Sender: TObject); var StrDia1,StrMes1,StrDia2,StrMes2 :string; begin // Data1 e Data2 sao MaskEdits com as mascaras: !99/99;1;_ StrDia1 := RetornaDia(Data1.Text); StrMes1 := RetornaMes(Data1.Text); StrDia2 := RetornaDia(Data2.Text); StrMes2 := RetornaMes(Data2.Text); DM.Tbl_Eleitores.Close; DM.Tbl_Eleitores.SelectSQL.Clear; DM.Tbl_Eleitores.SelectSQL.Add(´SELECT * FROM ELEITORES WHERE Extract(Day From NASCIMENTO) BETWEEN ´+ StrDia1 + ´ AND ´ + StrDia2 + ´ AND Extract(Month From Nascimento) BETWEEN ´+ StrMes1 + ´ AND ´ + StrMes2); DM.Tbl_Eleitores.Open; RelatEleitores.Label_Eleitores.Caption := ´Relatório de Aniversariantes entre o período de: ´+ Data1.Text + ´à ´ + Data2.Text ; RelatEleitores.QuickRep1.Preview; end;
Espero ter ajudado, aqui funcionou certinho...
Abraço a todos!
GOSTEI 0
Motta
08/03/2006
Tem certeza ?
Testou entre datas com 2 meses , por exemplo :
26/02/2006 até 04/03/2006
___________________
Testou entre datas com 2 meses , por exemplo :
26/02/2006 até 04/03/2006
___________________
GOSTEI 0
Kesley Boletti
08/03/2006
Boa essa. e como seria o sql para essa situação entre datas com 2 meses , por exemplo : 26/02/2006 até 04/03/2006
GOSTEI 0
Raimundo Pereira
08/03/2006
Bom dia,
VAR
CONV_DE:STRING;
CONV_ATE:STRING;
SCRIPT_SELECT:STRING;
COLOQUE DOIS DATEPICKER COM OS NOMES
DE_DATA
ATE_DATA
NO BUTTON DE PESQUISA FAÇA O SEGUINTE
CONV_DE:='';
CONV_ATE:='';
SCRIPT_SELECT:='';
CONV_DE:=DateToStr(DE_DATA.Date); //AQUI VAI PEGAR A DATA INFORMADA NO DATE PICKER (DE_DATA) E PREENCHER EM STRING.
CONV_ATE:=DateToStr(ATE_DATA.Date);//AQUI VAI PEGAR A DATA INFORMADA NO DATE PICKER (ATE_DATA) E PREENCHER EM STRING.
CONV_DE:=StringReplace(CONV_DE,'/','.', [rfReplaceAll, rfIgnoreCase]); // AQUI SUBSTITUÍMOS A '/' POR '.'
CONV_ATE:=StringReplace(CONV_ATE,'/','.', [rfReplaceAll, rfIgnoreCase]); // AQUI SUBSTITUÍMOS A '/' POR '.'
SCRIPT_SELECT:='SELECT * FROM ELEITORES WHERE NASCIMENTO BETWEEN '''
+CONV_DE+''' AND '''
+CONV_ATE+''''+
DM.Tbl_Eleitores.Close;
DM.Tbl_Eleitores.SelectSQL.Clear;
DM.Tbl_Eleitores.SelectSQL.TEXT:='SCRIPT_SELECT';
DM.Tbl_Eleitores.Open;
VAR
CONV_DE:STRING;
CONV_ATE:STRING;
SCRIPT_SELECT:STRING;
COLOQUE DOIS DATEPICKER COM OS NOMES
DE_DATA
ATE_DATA
NO BUTTON DE PESQUISA FAÇA O SEGUINTE
CONV_DE:='';
CONV_ATE:='';
SCRIPT_SELECT:='';
CONV_DE:=DateToStr(DE_DATA.Date); //AQUI VAI PEGAR A DATA INFORMADA NO DATE PICKER (DE_DATA) E PREENCHER EM STRING.
CONV_ATE:=DateToStr(ATE_DATA.Date);//AQUI VAI PEGAR A DATA INFORMADA NO DATE PICKER (ATE_DATA) E PREENCHER EM STRING.
CONV_DE:=StringReplace(CONV_DE,'/','.', [rfReplaceAll, rfIgnoreCase]); // AQUI SUBSTITUÍMOS A '/' POR '.'
CONV_ATE:=StringReplace(CONV_ATE,'/','.', [rfReplaceAll, rfIgnoreCase]); // AQUI SUBSTITUÍMOS A '/' POR '.'
SCRIPT_SELECT:='SELECT * FROM ELEITORES WHERE NASCIMENTO BETWEEN '''
+CONV_DE+''' AND '''
+CONV_ATE+''''+
DM.Tbl_Eleitores.Close;
DM.Tbl_Eleitores.SelectSQL.Clear;
DM.Tbl_Eleitores.SelectSQL.TEXT:='SCRIPT_SELECT';
DM.Tbl_Eleitores.Open;
GOSTEI 0