Query - Select com todos que estejam entre 16 e 25 anos
Oi,
Minha situação é a seguinte:
Em minha tabela há, entre outros, o campo DatadeNascimento e o campo Email. Utilizo .dbf e estou montando minha Query com todos os registros que possuam e-mail (Email <> ´´), e entre esses, preciso selecionar também os que estejam entre 16 e 25 anos a partir de sua data de nascimento.
Por enquanto só consegui selecionar todos que possuem e-mail:
begin
try
with Query1 do begin
Close;
SQL.Clear;
strSql := [b:7927bfb90b]´Select MATRICULA, DIGITO, NOME, EMAIL, NASCIMENTO From Dbsecsoc.dbf´;[/b:7927bfb90b] strSql := strSql + ´ Where EMAIL <> ´´ and ´;
strSql := strSql + ´ [b:7927bfb90b]Union a[/b:7927bfb90b]ll´;
strSql := strSql + ´ [b:7927bfb90b]Select MATRICULA, DIGITO, NOME, EMAIL, NASCIMENTO From Dbsecdep.dbf´;[/b:7927bfb90b]
strSql := strSql + ´ [b:7927bfb90b]Where EMAIL <> ´´´;[/b:7927bfb90b]
SQL.Add(strSql);
Open;
end;
except
end;
Qualquer ajuda será bem vinda,
Obrigada,
Minha situação é a seguinte:
Em minha tabela há, entre outros, o campo DatadeNascimento e o campo Email. Utilizo .dbf e estou montando minha Query com todos os registros que possuam e-mail (Email <> ´´), e entre esses, preciso selecionar também os que estejam entre 16 e 25 anos a partir de sua data de nascimento.
Por enquanto só consegui selecionar todos que possuem e-mail:
begin
try
with Query1 do begin
Close;
SQL.Clear;
strSql := [b:7927bfb90b]´Select MATRICULA, DIGITO, NOME, EMAIL, NASCIMENTO From Dbsecsoc.dbf´;[/b:7927bfb90b] strSql := strSql + ´ Where EMAIL <> ´´ and ´;
strSql := strSql + ´ [b:7927bfb90b]Union a[/b:7927bfb90b]ll´;
strSql := strSql + ´ [b:7927bfb90b]Select MATRICULA, DIGITO, NOME, EMAIL, NASCIMENTO From Dbsecdep.dbf´;[/b:7927bfb90b]
strSql := strSql + ´ [b:7927bfb90b]Where EMAIL <> ´´´;[/b:7927bfb90b]
SQL.Add(strSql);
Open;
end;
except
end;
Qualquer ajuda será bem vinda,
Obrigada,
Marcela_m
Curtidas 0
Respostas
Valcondes Rocha
25/08/2003
--Usei o SQL Server 7.0. E fiz a seguinte query.
select * from Dbsecdep
where (datepart(year, getdate())-datepart(year, nascimento))
between 16 and 27
--a linha antes do between retorna o ano da data atual - o ano da data de nascimento.
--exemplo => eu nasci em 16-april-1980. a data atual é 25-aug-2003. Portanto, temos : 2003-1980 = 23.
--Ou seja, serei selecionado no select acima.
--Valcondes Rocha.
select * from Dbsecdep
where (datepart(year, getdate())-datepart(year, nascimento))
between 16 and 27
--a linha antes do between retorna o ano da data atual - o ano da data de nascimento.
--exemplo => eu nasci em 16-april-1980. a data atual é 25-aug-2003. Portanto, temos : 2003-1980 = 23.
--Ou seja, serei selecionado no select acima.
--Valcondes Rocha.
GOSTEI 0