"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية حساب العمر بدقة في سنوات من تاريخ الميلاد في خادم SQL؟

كيفية حساب العمر بدقة في سنوات من تاريخ الميلاد في خادم SQL؟

نشر في 2025-03-23
تصفح:803

How to Accurately Calculate Age in Years from a Date of Birth in SQL Server?

احسب بدقة عمر تاريخ الميلاد في SQL Server

سؤال:

كيفية تحويل تاريخ الميلاد المخزن كـ nvarchar (25) في تاريخ في خادم SQL ثم حساب عمره المقابل منذ سنوات؟

عينة من البيانات:

بطاقة تعريف اسم DOB
1 جون 1992-01-09 00:00:00
2 Sally 1959-05-20 00:00:00

الإخراج المتوقع:

]
بطاقة تعريف اسم عمر DOB
1 جون 31 1992-01-09 00:00:00
2 Sally 64 1959-05-20 00:00:00

الإجابة: حساب العمر بدقة

]

يواجه النهج المقترح في البداية تحديات في النظر في مخالفات سنوات القفزات والأيام الشهرية. توفر لنا إصدارات SQL Server الحديثة تقنيات محسنة لمعالجة هذه التعقيدات.

أفضل طريقة لحساب عمر الأعداد الصحيحة:

هذه الطريقة بسيطة ومباشرة ، ولكن قد تكون الدقة أقل قليلاً من الطريقة العشرية.

SELECT
    (YEAR(GETDATE()) - YEAR(DOB)) - CASE WHEN MONTH(GETDATE()) 

أفضل طريقة لحساب عمر العشرية:

تستخدم هذه الطريقة الدالة Datediff و CASE لحساب العمر بدقة ، وفكر فيما إذا كان عيد ميلاد قد مرت في تلك السنة.

SELECT
    DATEDIFF(year, DOB, GETDATE()) - CASE WHEN MONTH(GETDATE()) 

لاحظ أن الكود أعلاه يفترض أن العمود dob قد تم تحويله إلى تاريخ إذا كان DOB لا يزال من nvarchar (25) ، فأنت بحاجة إلى إضافة تحويل نوع في الاستعلام ، على سبيل المثال: تحويل (DOT ، DOB ، 120) . يعتمد اختيار نمط التحويل المناسب على التنسيق المحدد لبيانات DOB . على سبيل المثال ، تحويل (تاريخ ، DOB ، 120) مناسب لـ "YyyyM-MM-DD HH: MI: SS 'Format. قد تحتاج إلى ضبط هذا القسم لتناسب تنسيق البيانات الخاص بك. يجب أن يكون الاستعلام النهائي مشابهًا لـ:

SELECT
    DATEDIFF(year, CONVERT(DATE, DOB, 120), GETDATE()) - CASE WHEN MONTH(GETDATE()) 
استبدال

yourtable باسم الجدول الخاص بك. تعتمد طريقة اختيار عدد صحيح أو عشري على متطلبات الدقة الخاصة بك. الطريقة العشرية أكثر دقة ، ولكن طريقة عدد صحيح أكثر إيجازا.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3