إضافة يوم أو شهر أو سنة باستخدام 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، واللي بتساعدك في التنسيق، الحسابات، والإضافات بكل سهولة. كل اللي عليك تحدد احتياجك وتستخدم الدالة المناسبة.