SELECT COM DATEDIFF
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
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
DateDiff não é Parametro do VB?
é, mas não dar pra usar no sql?
Já tentei concatenar usando '" & "' e não dar certo!
Já tentei concatenar usando '" & "' e não dar certo!
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.
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.
Assim tambem não dar certo, mesmo colocando a linha que cria a IDADE... dar erro não quero apenas comparar...
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.
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.
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
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.
Será que alguem conheçe uma saÃda pra esse empasse?! rsrs
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.
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.
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.
Tópico encerrado , respostas não são mais permitidas