الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية استخراج العمر من تاريخ الميلاد بالسنه والشهر واليوم

بدأه alroaini100 في 24 أغسطس 2014 · 3 رد · 770 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

 

كيف يمكن  استخراج العمر من تاريخ الميلاد بالسنه والشهر واليوم .....

هذا الكود لكن المشكله ان النتيجه ليست المطلوبه حيث ان القيمه تطلع بالسالب 

ارجو المساعد

وجزاكم الله الف خير

Declare @dateofbirth datetime

Declare @currentdatetime datetime

Declare @years varchar(40)

Declare @months varchar(30)

Declare @days varchar(30)

set @dateofbirth='2007-11-23'--birthdate

set @currentdatetime =getdate()--current datetime

select @years=datediff(year,@dateofbirth,@currentdatetime)-- To find Years

select @months=datediff(month,@dateofbirth,@currentdatetime)-(datediff(year,@dateofbirth,@currentdatetime)*12)

-- To Find Months

select @days=datepart(d,@currentdatetime)-datepart(d,@dateofbirth)-- To Find Days

select @years  +' years,   ' +@months +' months,   '+@days   +' days' asYearMonthDay
#3

وعليكم السلام ورحمة الله وبركاته 

اشكرك جدا اخي  الكريم 

بعد البحث استخدمت ABS() 

هذ ه تتجاهل القيمة السالبه ....

علي العموم ...النتيجه ما تطلع صحيحه  حتو لو اتجاهلنا السالب

7 سنة, -3 شهر, و 2 يوم

االناتج الصحيح 

6 سنة, 9 شهر, و 2 يوم

ارجو منك تساعدني 

#4

من c-csharpconer وجت التعديل على نفس الاستعلامات لتصبح النتجية كما يلي :

Declare @dateofbirth datetime

Declare @currentdatetime datetime

Declare @years varchar(40)

Declare @months varchar(30)

Declare @days varchar(30)

set @dateofbirth='2013-11-27'--birthdate

set @currentdatetime =getdate()--current datetime

select @years=datediff(year,@dateofbirth,@currentdatetime)-- To find Years

select @months=datediff(month,@dateofbirth,@currentdatetime)-(datediff(year,@dateofbirth,@currentdatetime)*12)

-- To Find Months

select @days=datepart(d,@currentdatetime)-datepart(d,@dateofbirth)-- To Find Days



--معالجة حالة السالب
IF @days < 0
BEGIN
IF @months > 0
BEGIN
SET @months = CASE
WHEN @days < 0
AND @months - 1 <= 0
THEN 12
WHEN @days < 0
THEN @months - 1
ELSE @months
END
END
ELSE
BEGIN
SET @months = 12 + @months
SET @years = @years - 1
PRINT @months
END

DECLARE @day INT
DECLARE @lastdayOfPrevMonth DATETIME

SELECT @day = datepart(d, @currentdatetime)

SELECT @lastdayOfPrevMonth = dateadd(d, - @day + @days, @currentdatetime)

SELECT @days = datepart(d, @lastdayOfPrevMonth)

PRINT @day

END

select @years  +' years,   ' +@months +' months,   '+@days   +' days' as YearMonthDay
1

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…