Campo calcolato Età

lunedì 26 ottobre 2009 - 01.52

giovanni79 Profilo | Newbie

Altro quesito...

Se ho il campo DatadiNascita e creo il campo Età, come faccio a creare il campo calcolato per avere il valore dell'età?
Now()- DataDiNascita /365? Su excel funzionerebbe..come si fa in access?

Grazie tante

Giovanni79

lbenaglia Profilo | Guru

>Se ho il campo DatadiNascita e creo il campo Età, come faccio
>a creare il campo calcolato per avere il valore dell'età?
>Now()- DataDiNascita /365? Su excel funzionerebbe..come si fa
>in access?

Ciao Giovanni,

Puoi ricorrere alla funzione DATEDIFF() specificando l'intervanno in anni:
DateDiff ('yyyy', BirthDate, Now())

http://www.techonthenet.com/access/functions/date/datediff.php

>Grazie tante
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

micto27 Profilo | Senior Member

Se ti può servire ti passo una funzione che, basandosi sul DATEDIFF
calcola l'età esatta.

Ciao, Michele

P.S. questa però è per Sql Server (non avevo letto bene il tuo post), sorry

CREATE FUNCTION [dbo].[fn_GetAge] (@birthday datetime, @d datetime) RETURNS int AS BEGIN declare @age int select @age = datediff(yy, @birthday, @d) - (case when (datepart(m, @birthday) > datepart(m, @d))OR (datepart(m, @birthday) = datepart(m, @d) AND datepart(d, @birthday) > datepart(d, @d)) then 1 else 0 end) Return(@age) END

giovanni79 Profilo | Newbie

grazie..
l'unica cosa è che non funziona...
ma deove inserisco questo codice?sono andato su struttura maschera, ho selezionato la casella Età e ho creato l'espressione copiando quella che mi hai inviato e scrivendo al posto di DateofBirth DaDiNascita (perchè il mio campo si chiama così.
quando vado su visualizzazione mashera l'età rimane in bianco e la devo digitare io!
dove sbaglio?
scusa ma non sono molto pratico...
grazie per la pazienza...
giovanni
Giovanni79

micto27 Profilo | Senior Member

Nel mio precedente post ti avevo mandato del codice per Sql Server (colpa mia che avevo letto frettolosamente il tuo messaggio),
su Access la formula equivalente è questa:

DateDiff("yyyy";DaDiNascita;Now()) - IIf ( DatePart ("m"; DaDiNascita) > DatePart ("m"; Now()) ; 1; IIf (DatePart ("d"; DaDiNascita) > DatePart ("d"; Now()); 1; 0) )

Ciao Michele
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5