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?
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).
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
251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2