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??
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.
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
<%
' 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.