شرح صفوف ومحتوى الفقرة
لقياس الفارق الزمني بين تاريخين أو طابعين زمنيين، يوفر MySQL دالتين متخصصتين يجب الانتباه لترتيب المعاملات في كل منهما:
- دالة فرق الأيام
DATEDIFF(expr1, expr2): تحسب ناتج الطرحexpr1 - expr2بالأيام الكاملة فقط مع تجاهل الساعات والدقائق؛ وتكون النتيجة موجبة إذا كان التاريخ الأول أحدث من الثاني. - دالة الفرق المحدد بالوحدة
TIMESTAMPDIFF(unit, start_dt, end_dt): تحسب الفارقend_dt - start_dtبالوحدة التي تختارها مثلHOURأوMINUTEأوMONTHأوYEAR.
SQL
SELECT
invoice_id,
DATEDIFF(due_date, issued_date) AS net_payment_days,
TIMESTAMPDIFF(HOUR, created_at, shipped_at) AS fulfillment_hours,
TIMESTAMPDIFF(YEAR, birth_date, CURDATE()) AS customer_age
FROM invoices;