---
title: "Räkna ut ålder utifrån personnummer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/138773-räkna-ut-ålder-utifrån-personnummer"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Troxy"
published: "2005-12-05T09:46:01.000Z"
updated: "2005-12-05T14:15:51.000Z"
replies: 4
views: 2371
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/138773-räkna-ut-ålder-utifrån-personnummer"
---

# Räkna ut ålder utifrån personnummer

## #1 — Troxy, 2005-12-05T09:46Z

Hej, jag vill räkna ut ålder på personer med hjälp av deras personnummer.
Alla personnummer ligger som strängar och ser såklart ut såhär: ÅÅMMDD-XXXX
Version som används: MySQL 4.1.11
Jag har nästan en fungerande lösning, som ser ut såhär:

```
SELECT YEAR(CURDATE())-YEAR(DATE(SUBSTRING(persnum,1,6)))as age FROM tblmembers
```

Problemet är att DATE()-funktionen inte riktigt funkar i detta fall. Den konverterar DATE('690910') till 2069-09-10.

Hur gör jag för att lägga till '19' i början på alla personnummer?
Eller har någon en annan lösning på detta?

Mvh

Permalänk: https://www.webforum.nu/p/138773

## #2 — Melea, 2005-12-05T09:51Z

Varför lagrar du inte personnummret med 0000-00-00 00:00:00?

**/r** Mitt tips: Gör om formateringen så att det sparas som jag skrev ovan. Sen byter du datatyp till datetime.
Sedan är det väl enklast att köra uträkningen av ålder med script-språket (ASP/PHP osv).

Permalänk: https://www.webforum.nu/p/1722079

## #3 — Troxy, 2005-12-05T10:28Z

Melea, men då är det inte ett personnummer längre, utan ett datum och klockslag ;)

Nåja, nu verkar det fungera lite bättre. Jag gjorde om hela uttrycket:

```
SELECT FLOOR((DATEDIFF(CURDATE(),DATE(CONCAT('19',SUBSTRING(persnum,1,6))))/365.25))as age FROM tblmembers
```

Tack och hej!

Permalänk: https://www.webforum.nu/p/1722091

## #4 — Melea, 2005-12-05T10:30Z

Ska nog sluta svara i webbutveckling/programmerings-forumen på morgonkvisten och kvällen/natten. ;)

Permalänk: https://www.webforum.nu/p/1722093

## #5 — Travoni, 2005-12-05T14:15Z

Om du måste använda de fyra sista i p-numret så är det bättre att dela upp det i två delar. Födelsedatan i ett datumfält och de sista i ett integer-fält. Då kan du använda datumfunktioner i stället för strängfunktioner för att extrakta åldern.

```
SELECT FLOOR(DATEDIFF(curdate(),fodelsedatumet)/365.25) AS age FROM tblmembers
```

Permalänk: https://www.webforum.nu/p/1722197

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/138773-räkna-ut-ålder-utifrån-personnummer
