webForumDet fria alternativet

Hur gammal är personen

ASP

4 svar · 842 visningar · startad av daniel_ra

Medlem sedan jan. 2002381 inlägg
Frågan#1

Jag har en post i db (selserver) som heter datetime. antar att det är datumformat. Hur tar jag reda på hur gammal en person är om jag anger ett födelsedatum såsom 19800501 alltså dagens datum minus det som är i fältet??

hoppas ni fattar

Medlem sedan dec. 20003 887 inlägg
#2

Det är en liten beräkningsfråga det där, men med hjälp av

select datediff( yy, [i]post[/i], getdate() )
from db

så får du fram hur många år det har gått sedan personen föddes.
Efter det får du kolla om dagens datum är före eller efter födelsedatumet och subtrahera 1 år om dagens datum är före.

Medlem sedan dec. 20003 887 inlägg
#3

Det går ju förstås att göra datumjämförelsen direkt i sql...

select datediff( yy, [i]post[/i], getdate() ) -
  case when datepart( m, [i]post[/i] ) < datepart( m, getdate() )
    and datepart( d, [i]post[/i] ) < datepart( d, getdate() )
  then 1
  else 0
  end
Medlem sedan juni 2001272 inlägg
#4
<%
' Ta reda på en ålder
Function convAge(DateOfBirth)
	If isDate(DateOfBirth) Then
		convAge = DateDiff("yyyy", DateOfBirth, Date) + (DateSerial(Year(Date), Month(DateOfBirth), Day(DateOfBirth)) > Date)
	End If
End Function
%>

Anropas med personnummer, tex

<% Response.Write convAge("1986-09-19") %>

och skriver då ut skillnaden i år mellan dagens datum och det datum, i detta fall 19.

Medlem sedan dec. 20003 887 inlägg
#5

Den funktionen är vb only, eftersom true = -1 i vb (vilket för övrigt är helt #¤%& idiotiskt).

305 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
156 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)