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!
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
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.