TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
C# Corner
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Calculate Years,Months and days from DOB
Akshay Phadke
Jul 08
2016
Code
853
0
0
facebook
twitter
linkedIn
Reddit
WhatsApp
Email
Bookmark
expand
DECLARE
@DOB
DATE
=
'1988-08-01'
, @CurrentDate DATETIME = GETDATE(), @Years
INT
, @Months
INT
, @Days
INT
, @tmpFromDate
DATE
IF(@DOB>@CurrentDate )
BEGIN
PRINT
'DATE OF BIRTH SHOULD NOT BE GREATER THAN CURRENT DATE'
;
END
ELSE
BEGIN
SET
@Years = DATEDIFF(
YEAR
, @DOB, @CurrentDate) - (
CASE
WHEN
DATEADD(
YEAR
, DATEDIFF(
YEAR
, @DOB, @CurrentDate), @DOB) > @CurrentDate
THEN
1
ELSE
0
END
)
SET
@tmpFromDate = DATEADD(
YEAR
, @Years , @DOB)
SET
@Months = DATEDIFF(
MONTH
, @tmpFromDate, @CurrentDate) - (
CASE
WHEN
DATEADD(
MONTH
,DATEDIFF(
MONTH
, @tmpFromDate, @CurrentDate),
@tmpFromDate) > @CurrentDate
THEN
1
ELSE
0
END
)
SET
@tmpFromDate = DATEADD(
MONTH
, @Months , @tmpFromDate)
SET
@Days = DATEDIFF(
DAY
, @tmpFromDate, @CurrentDate) - (
CASE
WHEN
DATEADD(
DAY
, DATEDIFF(
DAY
, @tmpFromDate, @CurrentDate),
@tmpFromDate) > @CurrentDate
THEN
1
ELSE
0
END
)
SELECT
@Years
AS
[
Year
(s)], @Months
AS
[
Month
(s)], @Days [
Day
(s)]
END
Calculate Years
Months and days from DOB