التعامل مع التواريخ - الجزء 3
جزء من قسم الأساسيات في رحلة SQL على Coddy. الدرس 33 من 72.
يوفّر SQL عدة دوال مفيدة لمعالجة التواريخ وتنسيقها. إليك بعض دوال التاريخ الشائعة:
DATE()- يحوّل سلسلة نصية إلى dateSTRFTIME()- ينسّق التواريخ وفقًا للمعلمات المحددةDATE('now')- يحصل على current date:
على سبيل المثال، حوّل سلسلة نصية إلى تاريخ:
SELECT DATE('2023-05-15 13:45:00')
-- يُرجع: 2023-05-15
SELECT DATE('now')
-- يُرجع التاريخ الحاليعلى سبيل المثال، استخرج السنة والشهر واليوم من date:
-- احصل على السنة
SELECT STRFTIME('%Y', '2023-05-15')
-- يُرجع: 2023
-- احصل على الشهر
SELECT STRFTIME('%m', '2023-05-15')
-- يُرجع: 05
-- احصل على اليوم
SELECT STRFTIME('%d', '2023-05-15')
-- يُرجع: 15
-- أظهر مزيجًا من السنة واليوم (يمكن استخدام أي فاصل)
SELECT STRFTIME('%Y:%d', '2023-05-15')
-- يُرجع: 2023:15
-- استخدم فاصل شرطة بدلاً من ذلك
SELECT STRFTIME('%d-%m-%Y', '2023-05-15')
-- يُرجع: 15-05-2023
-- احصل على يوم الأسبوع
SELECT STRFTIME('%w', '2023-05-15')
-- يُرجع: 1 (الاثنين؛ الأحد هو 0)مواصفات التنسيق الشائعة:
- %Y: السنة (4 أرقام)
- %m: الشهر (01-12)
- %d: يوم الشهر (01-31)
- %w: يوم الأسبوع (0-6، Sunday هو 0)
- %H: الساعة (00-23)
- %M: الدقيقة (00-59)
- %S: الثانية (00-59)
يمكنك استخدام أي حرف فاصل بين المواصفات (مثل - و: و/). على سبيل المثال، يجمع كل من STRFTIME('%d-%m-%Y', date) وSTRFTIME('%d:%m:%Y', date) بين اليوم والشهر والسنة، ولكن باستخدام فواصل مختلفة.
يمكنك دمج هذه الدوال في الاستعلامات:
-- ابحث عن جميع السجلات من السنة الحالية
SELECT * FROM table1
WHERE STRFTIME('%Y', date_column) = STRFTIME('%Y', 'now')التحدي
سهلالجداول والأعمدة المتاحة:
events:id،start،end
اكتب استعلامًا يعرض ما يلي:
- معرّف الحدث
- تاريخ البدء بالتنسيق "DD-MM-YYYY". سمِّ هذا العمود
formatted_start - تاريخ الانتهاء بالتنسيق "DD-MM-YYYY". سمِّ هذا العمود
formatted_end - المدة بالأيام بين
startوend، مقربةً إلى أقرب عدد صحيح. سمِّ هذا العمودduration_days
رشّح الصفوف التي تكون فيها سنة عمود start هي 2009 فقط (تُرجع STRFTIME() سلسلةً نصيةً وليست رقمًا).
رتّب النتائج حسب مدة الأيام ترتيبًا تنازليًا.
تذكير: لحساب الفرق بين التواريخ، استخدم: JULIANDAY(end) - JULIANDAY(start)، واستخدم ROUND() للتقريب إلى أعداد صحيحة.
جرّب بنفسك
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
2الشروط
أساسيات الشروطالكلمة المفتاحية ANDالكلمة المفتاحية ORالكلمة المفتاحية NOTدمج شروط متعددةالأقواسالقيم المنطقية Booleans3تنسيق محدد للنتائج
قيم Nullترتيب النتائج - الجزء الأولترتيب النتائج - الجزء الثانيمراجعة - شركة للأمن السيبرانيتحديد عدد السجلاتمراجعة - مصنع مركبات6تحديات تمهيدية
مراجعة - الانتخابات البرلمانيةمراجعة - اعتقال الشرطة للمجرمينمراجعة - حاوية مشروبات البارمراجعة - هندسة أعمدة جديدة9جداول متعددة
الربط الأساسي - الجزء الأولالربط الأساسي - الجزء الثانيمراجعة - الربط (Join)الربط الذاتي (Self Join)مراجعة - الربط الذاتي (Self Join)الاتحاد (Union)تبسيط الاستعلامات، الكلمة المفتاحية WITHمراجعة - استعلامات WITHمراجعة - مقاول العقارات12Window Functions الجزء الثاني
دوال RANK و DENSE_RANKمراجعة - RANK و DENSE_RANKدالة NTILEدوال التجميعمعيار ROWS و RANGEتدرّب بنفسك: Playground لـ SQL