شرح صفوف ومحتوى الفقرة
لحساب تاريخ انتهاء الاشتراك أو موعد الاستحقاق بدقة تراعي اختلاف عدد أيام الشهور والسنوات الكبيسة، نستخدم دوال الحساب الزمني مع الكلمة المفتاحية INTERVAL:
- دالة الإضافة
DATE_ADD(date, INTERVAL expr unit): تضيف فترة زمنية محددة مثلINTERVAL 7 DAYأوINTERVAL 3 MONTHأوINTERVAL 1 YEARإلى التاريخ. - دالة الطرح
DATE_SUB(date, INTERVAL expr unit): تطرح الفترة الزمنية المحددة من التاريخ (مثلاً جلب طلبات آخر 30 يوماً). - دالة
LAST_DAY(date): تعيد تاريخ آخر يوم في الشهر تلقائياً.
SQL
SELECT
subscription_id,
start_date,
DATE_ADD(start_date, INTERVAL 1 YEAR) AS expires_on,
DATE_SUB(CURDATE(), INTERVAL 30 DAY) AS thirty_days_ago,
LAST_DAY(start_date) AS billing_month_end
FROM subscriptions;