24. januar 2011 - 13:34Der er
16 kommentarer og 1 løsning
Beregning af alder
Hej
Jeg har følgende presserende problem i en SQL database (Kartotek):
Jeg skal beregne alder som forskellen mellem de 6 første cifre i feltet: [Cpr nr] og [Operations dato]. Den første er dim'et nvarchar og den anden datetime.
Hvordan skal SQL koden se ud a la:
Datediff (year, left([Cpr nr], 6), [Operations dato]) ...hvilket ikke virker idet den skal CASTES hmmm!
Du skal først finde et format der kan bruges (eller klippe de 6 cifre sammen til et format der kan bruges) og så bruge CONVERT(datetime, @datostreng, #formatnummer)
Det burde vel fungere :-) og gør det også de fleste gange men der fremkommer også nogle NEGATIVE værdier selvom [Operations dato] og [Cpr nr] er korrekte ...mystisk!!!
Det giver bestemt mening og løser jo nævnte problem. Der resterer dog fortsat problemet med de negative tal. Jeg vil lige prøve det mcb2001 foreslog :-)
ja, men med måneder kan du stadig regne forkert :-/ hvis du idag har d. 1/3 og dit cpr er 25/3, så er der et helt antal (deleligt med 12) antal måneder, selv om der er 24 dage til fødselsdagen.
Den kode jeg indsatte vil kun fungere i en stored procedure, men er faktisk testet i sql server management studio.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.