إضافة يوم أو شهر أو سنة باستخدام DATEADD

دالة DATEADD بتسهل عليك إضافة أو طرح أي فترة زمنية زي يوم، شهر، أو سنة على أي تاريخ.

الصيغة:

DATEADD(interval, number, date)
  • interval: نوع الفترة زي (day, month, year).
  • number: العدد اللي عايز تضيفه (موجب للإضافة، وسالب للطرح).
  • date: التاريخ الأساسي.

أمثلة:

  • إضافة يوم:

    SELECT DATEADD(day, 1, '2024-12-11'); -- النتيجة: 2024-12-12
  • إضافة شهر:

    SELECT DATEADD(month, 1, '2024-12-11'); -- النتيجة: 2025-01-11
  • إضافة سنة:

    SELECT DATEADD(year, 1, '2024-12-11'); -- النتيجة: 2025-12-11

استخدام متغير:

DECLARE @StartDate DATE = '2024-12-11';
SELECT DATEADD(day, 10, @StartDate); -- النتيجة: 2024-12-21

استخدام دوال إضافية للتواريخ

تنسيق التاريخ:

  • باستخدام FORMAT لتنسيق التاريخ بأي صيغة:

    SELECT FORMAT(GETDATE(), 'yyyy-MM-dd'); -- 2024-12-11
    SELECT FORMAT(GETDATE(), 'dd/MM/yyyy'); -- 11/12/2024

استخراج أجزاء من التاريخ:

  • باستخدام YEAR, MONTH, و DAY:

    SELECT YEAR(GETDATE());  -- السنة
    SELECT MONTH(GETDATE()); -- الشهر
    SELECT DAY(GETDATE());   -- اليوم

حساب الفرق بين تاريخين:

  • باستخدام DATEDIFF:

    SELECT DATEDIFF(day, '2024-12-01', GETDATE()); -- الفرق بالأيام
    SELECT DATEDIFF(year, '2000-01-01', GETDATE()); -- الفرق بالسنين

طرق أخرى للتعامل مع التواريخ

الحصول على التاريخ الحالي:

  • باستخدام GETDATE:

    SELECT GETDATE(); -- 2024-12-11 14:30:00

الحصول على نهاية الشهر:

  • باستخدام EOMONTH:

    SELECT EOMONTH(GETDATE()); -- نهاية الشهر الحالي
    SELECT EOMONTH(GETDATE(), -1); -- نهاية الشهر الماضي

إنشاء تواريخ يدويًا:

  • باستخدام DATEFROMPARTS:

    SELECT DATEFROMPARTS(2024, 12, 25); -- 2024-12-25

التحقق من صحة التاريخ:

  • باستخدام ISDATE:

    SELECT ISDATE('2024-12-11'); -- 1 (Valid)
    SELECT ISDATE('Invalid Date'); -- 0 (Invalid)

خلاصة

الـSQL Server عنده أدوات قوية للتعامل مع التواريخ زي DATEADD و FORMAT و DATEDIFF، واللي بتساعدك في التنسيق، الحسابات، والإضافات بكل سهولة. كل اللي عليك تحدد احتياجك وتستخدم الدالة المناسبة.