منشور

سلسلة دروس SQL| التواريخ

هذه المقالة جزء من سلسلة دروس SQL، يمكنك الاطلاع على الفهرس

تواريخ SQL

أصعب جزء عند العمل مع التواريخ هو التأكد من أن تنسيق التاريخ الذي تحاول إدراجه يتطابق مع تنسيق عمود التاريخ في قاعدة البيانات.

طالما أن بياناتك تحتوي على جزء التاريخ فقط، فستعمل الاستعلامات على النحو المتوقع و لن يكون هناك أي مشاكل لكن إذا كان جزء من التاريخ متضمنًا أموراً أخرى، فإن الأمر يصبح أكثر تعقيدًا

أنواع بيانات التاريخ في SQL

يأتي MySQL مع أنواع البيانات التالية لتخزين تاريخ أو قيمة تاريخ /وقت في قاعدة البيانات:

  • DATE - تنسيق YYYY-MM-DD

  • DATETIME - التنسيق: YYYY-MM-DD HH: MI: SS

  • TIMESTAMP - التنسيق: YYYY-MM-DD HH: MI: SS

  • YEAR - تنسيق YYYY أو YY

يأتي SQL Server مع أنواع البيانات التالية لتخزين تاريخ أو قيمة تاريخ /وقت في قاعدة البيانات:

*DATE - تنسيق YYYY-MM-DD

  • DATETIME - التنسيق: YYYY-MM-DD HH: MI: SS

  • SMALLDATETIME - التنسيق: YYYY-MM-DD HH: MI: SS

  • TIMESTAMP - التنسيق: رقم فريد “unique number”

ملاحظة: يتم اختيار أنواع التاريخ لعمود عند إنشاء جدول جديد في قاعدة البيانات الخاصة بك!

العمل مع التواريخ في SQL

يمكنك مقارنة تاريخين بسهولة إذا لم يكن هناك عنصر وقت متضمن أي اذا لم يحتوي التاريخ على معلومات لساعة معينة مثلاً

افترض أن لدينا جدول “الطلبات” التالي:

OrderId ProductName OrderDate
1 Geitost 2008-11-11
2 Camembert Pierrot 2008-11-09
3 Mozzarella di Giovanni 2008-11-11
4 Mascarpone Fabioli 2008-10-29

نريد الآن تحديد السجلات ذات تاريخ الطلب “2008-11-11” من الجدول أعلاه.

نستخدم عبارة SELECT التالية:

1
2
3
 SELECT * FROM Orders WHERE OrderDate='2008-11-11'

ستبدو مجموعة النتائج كما يلي:

OrderId ProductName OrderDate
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

الآن ،افترض أن جدول “الطلبات” يبدو مثل هذا (لاحظ مكون الوقت في عمود “تاريخ الطلب”):

OrderId ProductName OrderDate
1 Geitost 2008-11-11 13:23:44
2 Camembert Pierrot 2008-11-09 15:45:21
3 Mozzarella di Giovanni 2008-11-11 11:12:01
4 Mascarpone Fabioli 2008-10-29 14:56:59

إذا استخدمنا نفس عبارة SELECT المذكورة أعلاه:

1
2
3
 SELECT * FROM Orders WHERE OrderDate='2008-11-11'

لن نحصل على نتيجة! وذلك لأن الاستعلام يبحث فقط عن التواريخ بدون جزء من الوقت.

نصيحة: للحفاظ على استفساراتك بسيطة وسهلة الصيانة ، لا تسمح بمكونات الوقت في التواريخ الخاصة بك!

التالي: Views

هذا المنشور تحت ترخيص CC BY 4.0 بواسطة المؤلف.