حساب فارق العمر بالسنوات كعدد صحيح في MySQL
يمثل تحديد عمر الشخص في قاعدة البيانات تحديًا بسيطًا عند التعامل مع حسابات العمر . خذ بعين الاعتبار جدول "الطالب" الذي يحتوي على عمودين "معرف" و"تاريخ_الميلاد".
لحساب العمر بالأيام، يمكن استخدام التعبير datediff(curdate(),birth_date)، ولكن هذا يؤدي إلى إرجاع قيمة فاصلة عائمة . القسمة على 365 تؤدي إلى الحصول على قيمة الفاصلة العائمة أيضًا.
يؤدي حساب السنوات على هيئة year(curdate())-year(birth_date) إلى ظهور مشكلة أيضًا. على سبيل المثال، إذا ولد شخص ما في يونيو 1970 والتاريخ الحالي هو مايو، فسيرجع التعبير بشكل غير صحيح 32 عامًا بدلاً من 31.
الحل البديل لفرق السنة الصحيحة:
لمعالجة هذه المشكلة، ضع في اعتبارك عبارة SQL التالية:
SELECT TIMESTAMPDIFF(YEAR, date_of_birth, CURDATE()) AS difference FROM student
يحسب هذا التعبير الفرق بين 'date_of_birth' و'CURDATE()' بالسنوات، مما يؤدي إلى قيمة عددية صحيحة.امتداد لـ الأشهر والأيام:
لحساب الفرق بالأشهر، استبدل "YEAR" بـ "MONTH" في التعبير:SELECT TIMESTAMPDIFF(MONTH, date_of_birth, CURDATE()) AS difference FROM student
وبالمثل، بالنسبة للاختلاف في الأيام، استبدل "YEAR" بـ "DAY":SELECT TIMESTAMPDIFF(DAY, date_of_birth, CURDATE()) كفرق من طالب
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3