IDADE NO SELECT

CBTECH 14/09/2006 11:56:08
#171402
Como faço para encontrar a idade tipo: 1 ano 3 meses 5 dias
Quero exibir num ListView, agrdeço quem ajudar.
Até agora fiz assim:
"select *, nascimento, date - nascimento / 365,25 AS Idade from tabela"
Mas dar a idade e uma imensa disma, 14,46161613160651
HUGOSSOUZA 14/09/2006 12:04:54
#171407
tenta assim:

"select *, nascimento, Int(DateDiff("y", CDate(format(nascimento,"DD/MM/YYYY")), Date) / 365.25) AS Idade from tabela"
USUARIO.EXCLUIDOS 14/09/2006 14:12:13
#171457
Carinha o código a seguir faz isso, só que pelo VB, tipo, daí vc pega os dados e exibe no ListView usando o código:

Public Function PegaDataDif(ByVal Data1 As Date, Optional ByVal Data2 As Date) As String()
Dim Ano As Integer, Mes As Integer, Dia As Integer
Dim v(2) As String

If Data2 = Empty Then Data2 = Date

Ano = DateDiff("YYYY", Data1, Data2)
Mes = (DateDiff("M", Data1, Data2) Mod 12)
If Month(Data1) > Month(Now) Then
Ano = Ano - 1
End If

Dia = Day(Data2) - Day(Data1)

If Dia < 0 Then
Mes = Mes - 1
Dia = Day(DateSerial(Year(Data2), Month(Data2), 0)) + Dia
End If

v(0) = Ano: v(1) = Mes: v(2) = Dia
PegaDataDif = v
End Function


Para usar no seu caso (mostrarei populando um ListBox, daí vc converte pra um ListView):

Dim Dt() As String
rst.Open "SELECT * FROM Tabela"
Do While Not rst.EOF
Dt = PegaDataDif(rst("nascimento"))
List1.AddItem "Nome: " & rst("NOME")
List1.AddItem ">Idade: " & Dt(0) & " anos " & Dt(1) & " meses " & Dt(2) & " dias."
rst.MoveNext
Loop


Qualquer dúvida poste...flw
CBTECH 15/09/2006 13:53:29
#171689
Não entendi direito, achei que a variavel Dt fosse carregada no Do While... Veja o códiugio novamente por favor.
USUARIO.EXCLUIDOS 15/09/2006 14:10:07
#171692
Verdade carinha, esqueci de carregar, mas olha lá agora que eu arrumei...flw
CBTECH 15/09/2006 14:23:54
#171695
Valeu Brothinho... Vou testar e te pontuar. Brigadu!!!
CBTECH 15/09/2006 14:47:44
#171699
Desculpe por não ter avisado antes, uso o FireBird, será que funciona? Vlw
USUARIO.EXCLUIDOS 15/09/2006 15:04:19
#171708
Resposta escolhida
Citação:

CBTECH escreveu:
Desculpe por não ter avisado antes, uso o FireBird, será que funciona? Vlw



Tb uso FB e te digo que funfa sim, mas repare que a conta é feita pelo VB e não pelo BD...flw
CBTECH 16/09/2006 12:30:15
#171850
Carinha, o código funcionou perfeito! Dei uma melhorada somente pra mostrar apenas 3 meses; 21 dias; quando for o caso e não 0 anos, 3 meses ... Muito obrigado Matioli.
Tópico encerrado , respostas não são mais permitidas