SELECT COM DATEDIFF

CBTECH 16/09/2006 13:39:14
#171856
Uso o FireBird 1.5 - Principiante!
1) Quero selecionar somente as pessoas com determinada idade, ou seja menor de 1 ano, entre 0 e 5 anos..., estou tentando com o DateDiff e dar erro, alguem pode me ajudar.

Ex.: SELECT * FROM tabela WHERE DateDiff("m", nascimento, date) < 12
USUARIO.EXCLUIDOS 16/09/2006 13:41:48
#171858
DateDiff não é Parametro do VB?
CBTECH 16/09/2006 13:44:16
#171861
é, mas não dar pra usar no sql?
Já tentei concatenar usando '" & "' e não dar certo!
USUARIO.EXCLUIDOS 16/09/2006 14:17:20
#171867
vc tenta usar uma função de VB numa linha SQL sem sequer ler se o tipo de banco q vc está usando suporta ela?

Acho que se vc usar between dá certo, tipo:

"SELECT * FROM TABELA WHERE idade BETWEEN 1 and 5"

é só um exemplo, pra vc ter uma idéia.
CBTECH 16/09/2006 14:30:20
#171871
Assim tambem não dar certo, mesmo colocando a linha que cria a IDADE... dar erro não quero apenas comparar...
USUARIO.EXCLUIDOS 17/09/2006 10:14:14
#171959
Eu to falando...
O BETWEEN não compara, retorna.
Todos os valores intermediários entre o primeiro e o segundo serão retornados.
basta vc achar a forma melhor de usar.

USUARIO.EXCLUIDOS 17/09/2006 12:44:00
#171981
FireBird não tem DateDiff, isso funfaria pra Access, mas o que vc pode fazer, é criar um campo onde armazenará apenas o ano, daí usar a query:

SQL = "SELECT * FROM tabela WHERE Ano < " & Year(Date) - 12

CBTECH 17/09/2006 13:17:56
#171987
Quero selecionar as pessoas por determinda faixa etária ex.: = 1 ano, < 1 Ano, entre 1 ano e 5 anos, entre 12 anos e 49 anos... e deixar espaço pro usuário colocar os parà¢metros que quiser. Talvez seja como citou acima Matioli, pensei em converter meses. Mas obrigado ainda tento fazer as coisas como no access.
CBTECH 17/09/2006 17:18:18
#172020
Será que alguem conheçe uma saída pra esse empasse?! rsrs
USUARIO.EXCLUIDOS 18/09/2006 07:59:07
#172066
CBTECH .. pelo o que eu entendi vc tem um campo na tabela chamado "IDADE" certo ? e vc que retornar os registro na qual a idade esta entre um determinda faixa certo ? Se for isso vc pode usar o BETWEEN igual o JOANETO falou .. faça assim

dim Idade1 as string
dim Idade2 as string

Idade1=txtData1.text
Idade2=txtData2.text

SELECT * FROM TABELA WHERE IDADE BETWEEN '" & Idade1 & "' and '" & Idade2 & "'"

ou vc pode fazer assim .....

SELECT * FROM TABELA WHERE IDADE >= '" & Idade1 & "' and IDADE <= '" & Idade2 & "'"

obs: Suponho que o seu campo idade não esta armazenado Datas e sim a idade , Tipo 5,10,15 mas se o seu campo estiver armazenando Datas vc tambem pode usar o BETWEEN assim...

SELECT * FROM TABELA WHERE IDADE BETWEEN '" & Format(Idade1,"mm/dd/yyyy") & "' and '" & Format(Idade2,"mm/dd/yyyy") & "'"

Agora se não for isso, explique melhor, poste parte dos códigos anexe o projeto ... etc.



CBTECH 18/09/2006 10:08:42
#172100
Josimar, vc está quase aproximando do que eu quero realmente. Não tenho um campo IDADE e sim um campo NASCIMENTO com a data de nascimento da pessoa, para isso preciso calcular a idade da pessoa na sql e usar o BETWEEN, concorda? A sua sintaxe tá certa, mas assim vai me dar as pessoas nascidas entre uma data e outra, eu quero pessoas entre uma IDADE e outra. Entenderam? Desculpe não postar meu código, porque eu não tenho nada pronto mesmo, é isso aí. Obrigado pela atenção.
Página 1 de 2 [15 registro(s)]
Tópico encerrado , respostas não são mais permitidas