0Pricing
SQL Academy · درس

الحساب على التواريخ وINTERVAL

أضف التواريخ واطرحها باستخدام INTERVAL، واحسب المدد، وابنِ مرشحات نسبية مثل «الأيام السبعة الماضية».

الحساب على التواريخ وINTERVAL درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

مراجعة أنواع التاريخ والوقت

الأنواع الزمنية الأساسية الأربعة في PostgreSQL:

  • DATE — يوم تقويمي من دون وقت
  • TIME — وقت اليوم
  • TIMESTAMP — تاريخ ووقت من دون منطقة زمنية
  • TIMESTAMPTZ — تاريخ ووقت مع المنطقة الزمنية (موصى به للأحداث)

INTERVAL: مدة زمنية

يمثل INTERVAL مدة زمنية. يمكنك إضافته إلى تاريخ أو طابع زمني أو طرحه منهما:

SELECT NOW() + INTERVAL '1 day';
SELECT NOW() - INTERVAL '30 days';
SELECT NOW() + INTERVAL '3 months 2 weeks';
SELECT INTERVAL '1 hour' + INTERVAL '15 minutes';

وحدات INTERVAL

يمكنك استخدام year, month, week, day, hour, minute, second (بصيغة المفرد أو الجمع):

SELECT INTERVAL '2 years 6 months';
SELECT INTERVAL '1 week';
SELECT INTERVAL '90 seconds';

عوامل تصفية التاريخ النسبي الشائعة

الاستعلامات الأساسية من نوع «آخر N يومًا»:

SELECT * FROM orders
WHERE created_at >= NOW() - INTERVAL '7 days';

SELECT * FROM events
WHERE created_at >= CURRENT_DATE - INTERVAL '1 month';

إضافة أيام إلى DATE

يسمح PostgreSQL أيضًا باستخدام date + integer بمعنى «إضافة N من الأيام»:

SELECT DATE '2024-01-01' + 30;     -- 2024-01-31
SELECT DATE '2024-01-01' - 1;      -- 2023-12-31

طرح طابعين زمنيين

الفرق بين طابعين زمنيين هو INTERVAL:

SELECT NOW() - '2024-01-01'::TIMESTAMP;
-- → '125 days 14:30:00'

SELECT EXTRACT(EPOCH FROM (NOW() - created_at))/3600 AS hours_ago
FROM events;

AGE: فرق قابل للقراءة البشرية

تعيد AGE(end, start) قيمة INTERVAL بالسنوات والأشهر والأيام:

SELECT AGE(NOW(), birth_date) AS age_interval
FROM users WHERE id = 1;

SELECT EXTRACT(YEAR FROM AGE(birth_date)) AS age_in_years
FROM users;

إضافة الأشهر — انتبه

إضافة شهر هي عملية حسابية تقويمية. 2024-01-31 + 1 month = 2024-02-29 (بعد تقليصه إلى آخر يوم متاح):

SELECT DATE '2024-01-31' + INTERVAL '1 month';   -- 2024-02-29
SELECT DATE '2024-03-31' + INTERVAL '1 month';   -- 2024-04-30

CURRENT_DATE مقابل NOW()

تختلف أنواع القيم المُعادة — اختر ما يناسبك:

SELECT CURRENT_DATE;        -- 2024-03-15 (DATE)
SELECT CURRENT_TIME;        -- 14:30:00+02 (TIMETZ)
SELECT CURRENT_TIMESTAMP;   -- 2024-03-15 14:30:00+02 (TIMESTAMPTZ)
SELECT NOW();               -- alias for CURRENT_TIMESTAMP

إنشاء التواريخ من مكوّناتها

أنشئ التواريخ من أعمدة صحيحة:

SELECT MAKE_DATE(year, month, day) FROM birthdays;
SELECT MAKE_TIMESTAMP(2024, 3, 15, 14, 30, 0.0);

الفهارس على تعبيرات التاريخ

يتعامل الفهرس على created_at بكفاءة مع استعلامات النطاق. وللعثور على «الأحداث في مارس»، يكون عامل تصفية النطاق أسرع من اقتطاع الشهر:

-- Index-friendly:
WHERE created_at >= '2024-03-01' AND created_at < '2024-04-01';

-- Less friendly (works only with expression index):
WHERE date_trunc('month', created_at) = '2024-03-01';

مراجعة

الحسابات الخاصة بالتاريخ في SQL غنية وموثوقة.

  • استخدم INTERVAL للمدد الزمنية
  • أضف القيم أو اطرحها مباشرةً
  • استخدم AGE للفترات القابلة للقراءة البشرية
  • النطاقات نصف المفتوحة هي الأفضل للاستفادة من الفهارس

تحقق سريع

أي تعبير يعيد الأحداث من آخر 7 أيام؟

الأسئلة الشائعة

هل درس «الحساب على التواريخ وINTERVAL» مجاني؟

نعم — نص درس «الحساب على التواريخ وINTERVAL» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «الحساب على التواريخ وINTERVAL»؟

أضف التواريخ واطرحها باستخدام INTERVAL، واحسب المدد، وابنِ مرشحات نسبية مثل «الأيام السبعة الماضية». تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «الحساب على التواريخ وINTERVAL»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الحساب على التواريخ وINTERVAL
  2. EXTRACT وDATE_TRUNC وAGE
  3. المناطق الزمنية: TIMESTAMP مقابل TIMESTAMPTZ
  4. تقارير التواريخ الشائعة (MTD وWoW وYoY)
← العودة إلى SQL Academy