logo

نوع بيانات الوقت في SQL

  • هناك العديد من السيناريوهات في SQL عندما تحتاج إلى تخزين الوقت في جداول SQL لقاعدة البيانات الخاصة بك.
  • لتخزين الوقت في جداول SQL الخاصة بك، يجب أن تكون خطوتك الأولى هي إنشاء عمود في جدولك قادر على تخزين الوقت.
  • إذا كنت تريد تخزين الوقت في عمود الجدول الخاص بك، فستحتاج إلى إنشاء عمود بنوع بيانات الوقت.
  • يقوم نوع البيانات TIME بشكل افتراضي بتخزين الوقت بتنسيق 'HH:MM:SS'.
  • باستخدام عبارة SELECT في SQL، يمكنك استرداد الوقت من عمود جداول SQL.
  • إلى جانب استرجاع الوقت بالتنسيق الافتراضي الذي تم تخزينه به، توجد وظيفة TIME_FORMAT () في SQL والتي يمكن من خلالها استرجاع الوقت بتنسيق أكثر قابلية للقراءة.
  • يمكنك استرداد الوقت بالتنسيق الافتراضي الذي تم تخزينه به في الجدول، أي 'HH:MM:SS'، أو لديك أيضًا خيار استرداد أجزاء معينة من الوقت مثل الساعة والدقيقة والثواني. عن طريق اختيار معلمة مناسبة وفقًا لمتطلباتنا وتمريرها إلى الدالة TIME_FORMAT(). ويمكن أيضًا استرجاع الوقت بتنسيق 12 ساعة و24 ساعة.
  • يمكننا أيضًا طباعة الوقت متبوعًا بـ AM/PM.

دعونا نرى بعض الأمثلة العملية لفهم هذا المفهوم بشكل أكثر وضوحا. سوف نستخدم قاعدة بيانات MySQL لكتابة كافة الاستعلامات.

لإنشاء جدول في قاعدة البيانات، سنقوم أولاً بتحديد قاعدة البيانات التي نريد إنشاء جدول فيها.

 mysql> USE dbs; 

ثم سنكتب الاستعلام التالي لإنشاء جدول:

 mysql> CREATE TABLE items_tbl(ID INT, Item_Name VARCHAR(20), Item_Quantity INT, Item_Price INT, Item_OrderDate DATE, Item_OrderTime TIME); 

نوع بيانات الوقت في SQL

في الاستعلام أعلاه، سيقوم العمود المسمى ItemOrderTime بتخزين الوقت حيث تم تعيين نوع بيانات هذا العمود على أنه 'TIME'.

الآن، سوف نكتب استعلامًا لإدراج السجلات في الجدول items_tbl.

10 من 50
 mysql> INSERT INTO items_tbl(ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, Item_OrderTime) VALUES(1, 'Soap', 5, 200, '2021-07-08', '04:13:52'), (2, 'Toothpaste', 2, 80, '2021-07-10', '18:09:01'), (3, 'Pen', 10, 50, '2021-07-12', '12:00:02'), (4, 'Bottle', 1, 250, '2021-07-13', '15:07:05'), (5, 'Brush', 3, 90, '2021-07-15', '19:18:43'), (6, 'Notebooks', 10, 1000, '2021-07-26', '05:05:05'), (7, 'Handkerchief', 3, 100, '2021-07-28', '10:08:12'), (8, 'Chips Packet', 5, 50, '2021-07-30', '08:16:58'), (9, 'Marker', 2, 30, '2021-08-13', '02:18:32'), (10, 'Scissors', 1, 60, '2021-08-13', '07:17:30'); 

نوع بيانات الوقت في SQL

سنقوم بتنفيذ استعلام SELECT للتحقق من إدراج كافة السجلات بنجاح في الجدول items_tbl.

 mysql> SELECT *FROM items_tbl; 

بطاقة تعريف اسم العنصر البند الكمية سعر_الصنف Item_OrderDate Item_OrderTime
1 صابون 5 200 2021-07-08 04:13:52
2 معجون الأسنان 2 80 2021-07-10 18:09:01
3 قلم 10 خمسون 2021-07-12 12:00:02
4 زجاجة 1 250 2021-07-13 15:07:05
5 فرشاة 3 90 2021-07-15 19:18:43
6 دفاتر الملاحظات 10 1000 2021-07-26 05:05:05
7 منديل 3 100 2021-07-28 10:08:12
8 حزمة الشيبس 5 خمسون 2021-07-30 08:16:58
9 علامة 2 30 2021-08-13 02:18:32
10 مقص 1 60 2021-08-13 07:17:30

تظهر نتائج الاستعلام أعلاه أنه يتم استرداد الوقت بالتنسيق الافتراضي الذي تم تخزينه به، أي 'HH:MM:SS'.

مثال 1:

اكتب استعلامًا لاسترداد كافة القيم من item_tbl ووقت طلب العناصر بتنسيق 12 ساعة مع AM/PM لاسترداد قيم الوقت بتنسيق أكثر قابلية للقراءة.

استفسار:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%r') AS Formatted_Time FROM items_tbl; 

هنا، يتم تطبيق الدالة TIME_FORMAT() على Item_OrderTime باستخدام المعلمة '%r' لطباعة الوقت بتنسيق 12 ساعة متبوعًا بـ AM/PM.

سوف تحصل على الجدول التالي كإخراج:

بطاقة تعريف اسم العنصر البند الكمية سعر_الصنف Item_OrderDate Item_OrderTime
1 صابون 5 200 2021-07-08 04:13:52 ص
2 معجون الأسنان 2 80 2021-07-10 06:09:01 مساءً
3 قلم 10 خمسون 2021-07-12 12:00:02 م
4 زجاجة 1 250 2021-07-13 03:07:05 مساءً
5 فرشاة 3 90 2021-07-15 07:18:43 مساءً
6 دفاتر الملاحظات 10 1000 2021-07-26 05:05:05 ص
7 منديل 3 100 2021-07-28 10:08:12 ص
8 حزمة الشيبس 5 خمسون 2021-07-30 08:16:58 ص
9 علامة 2 30 2021-08-13 02:18:32 ص
10 مقص 1 60 2021-08-13 07:17:30 صباحا

مثال 2:

اكتب استعلامًا لاسترداد كافة القيم من item_tbl ووقت طلب العناصر بتنسيق 12 ساعة مع AM/PM لاسترداد قيم الوقت بتنسيق أكثر قابلية للقراءة.

الربيع والربيع MVC

استفسار:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%T %p') AS Formatted_Time FROM items_tbl; 

هنا، يتم تطبيق الدالة TIME_FORMAT () على Item_OrderTime باستخدام المعلمة '%T %p'. سيقوم '%T' بطباعة الوقت بتنسيق 24 ساعة، وسيقوم '%p' بإضافة AM/PM إلى الوقت بتنسيق 24 ساعة.

سوف تحصل على الجدول التالي كإخراج:

بطاقة تعريف اسم العنصر البند الكمية سعر_الصنف Item_OrderDate Item_OrderTime
1 صابون 5 200 2021-07-08 04:13:52 ص
2 معجون الأسنان 2 80 2021-07-10 18:09:01 مساءً
3 قلم 10 خمسون 2021-07-12 12:00:02 م
4 زجاجة 1 250 2021-07-13 15:07:05 مساءً
5 فرشاة 3 90 2021-07-15 19:18:43 مساءً
6 دفاتر الملاحظات 10 1000 2021-07-26 05:05:05 ص
7 منديل 3 100 2021-07-28 10:08:12 ص
8 حزمة الشيبس 5 خمسون 2021-07-30 08:16:58 ص
9 علامة 2 30 2021-08-13 02:18:32 ص
10 مقص 1 60 2021-08-13 07:17:30 صباحا

مثال 3:

استبدال الكل

اكتب استعلامًا لاسترداد كافة القيم من item_tbl وساعة طلب العناصر فقط من وقت الطلب بالكامل بتنسيق 24 ساعة.

استفسار:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%H') AS Item_OrderHour FROM items_tbl; 

هنا، يتم تطبيق الدالة TIME_FORMAT () على Item_OrderTime مع المعلمة '%H' لطباعة الساعة التي يتم فيها طلب العنصر على وجه التحديد. يشير الحرف الكبير H إلى أنه سيتم طباعة الساعة بتنسيق 24 ساعة.

سوف تحصل على الجدول التالي كإخراج:

بطاقة تعريف اسم العنصر البند الكمية سعر_الصنف Item_OrderDate Item_OrderHour
1 صابون 5 200 2021-07-08 04
2 معجون الأسنان 2 80 2021-07-10 18
3 قلم 10 خمسون 2021-07-12 12
4 زجاجة 1 250 2021-07-13 خمسة عشر
5 فرشاة 3 90 2021-07-15 19
6 دفاتر الملاحظات 10 1000 2021-07-26 05
7 منديل 3 100 2021-07-28 10
8 حزمة الشيبس 5 خمسون 2021-07-30 08
9 علامة 2 30 2021-08-13 02
10 مقص 1 60 2021-08-13 07

مثال 4:

اكتب استعلامًا لاسترداد كافة القيم من item_tbl وساعة طلب العناصر فقط من وقت الطلب بالكامل بتنسيق 12 ساعة.

استفسار:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%h') AS Item_OrderHour FROM items_tbl; 

هنا، يتم تطبيق الدالة TIME_FORMAT () على Item_OrderTime مع المعلمة '%h' لطباعة الساعة التي يتم فيها طلب العنصر على وجه التحديد. يشير الحرف 'h' الصغير إلى أنه ستتم طباعة الساعة بتنسيق 12 ساعة.

سوف تحصل على الجدول التالي كإخراج:

CSS للخط العريض
بطاقة تعريف اسم العنصر البند الكمية سعر_الصنف Item_OrderDate Item_OrderHour
1 صابون 5 200 2021-07-08 04
2 معجون الأسنان 2 80 2021-07-10 6
3 قلم 10 خمسون 2021-07-12 12
4 زجاجة 1 250 2021-07-13 03
5 فرشاة 3 90 2021-07-15 07
6 دفاتر الملاحظات 10 1000 2021-07-26 05
7 منديل 3 100 2021-07-28 10
8 حزمة الشيبس 5 خمسون 2021-07-30 08
9 علامة 2 30 2021-08-13 02
10 مقص 1 60 2021-08-13 07

مثال 5:

اكتب استعلامًا لاسترداد كافة القيم من item_tbl وفقط الدقيقة التي يتم فيها طلب العنصر من وقت الطلب بأكمله.

استفسار:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%i') AS Item_OrderMinute FROM items_tbl; 

هنا، يتم تطبيق الدالة TIME_FORMAT () على Item_OrderTime باستخدام المعلمة '%i' لطباعة الدقيقة التي يتم فيها طلب العنصر على وجه التحديد. يشير الحرف 'i' الصغير إلى أنه سيتم طباعة الدقيقة من 'Item_OrderTime' بالكامل.

سوف تحصل على الجدول التالي كإخراج:

بطاقة تعريف اسم العنصر البند الكمية سعر_الصنف Item_OrderDate Item_OrderMinute
1 صابون 5 200 2021-07-08 13
2 معجون الأسنان 2 80 2021-07-10 09
3 قلم 10 خمسون 2021-07-12 00
4 زجاجة 1 250 2021-07-13 07
5 فرشاة 3 90 2021-07-15 18
6 دفاتر الملاحظات 10 1000 2021-07-26 05
7 منديل 3 100 2021-07-28 08
8 حزمة الشيبس 5 خمسون 2021-07-30 16
9 علامة 2 30 2021-08-13 18
10 مقص 1 60 2021-08-13 17

مثال 6:

ما هو ماي سبيس

اكتب استعلامًا لاسترداد كافة القيم من item_tbl والثواني فقط التي يتم فيها طلب العنصر من وقت الطلب بأكمله.

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%S') AS Item_OrderSeconds FROM items_tbl; 

هنا، يتم تطبيق الدالة TIME_FORMAT () على Item_OrderTime باستخدام المعلمة '%S' لطباعة الثواني التي يتم طلب العنصر فيها على وجه التحديد. يشير الحرف الكبير 'S' إلى أنه سيتم طباعة الدقيقة من 'Item_OrderTime' بالكامل.

سوف تحصل على الجدول التالي كإخراج:

بطاقة تعريف اسم العنصر البند الكمية سعر_الصنف Item_OrderDate Item_Order_Seconds
1 صابون 5 200 2021-07-08 52
2 معجون الأسنان 2 80 2021-07-10 01
3 قلم 10 خمسون 2021-07-12 02
4 زجاجة 1 250 2021-07-13 05
5 فرشاة 3 90 2021-07-15 43
6 دفاتر الملاحظات 10 1000 2021-07-26 05
7 منديل 3 100 2021-07-28 12
8 حزمة الشيبس 5 خمسون 2021-07-30 58
9 علامة 2 30 2021-08-13 32
10 مقص 1 60 2021-08-13 عشرين

ملحوظة: استخدام Small 's' في الاستعلام أعلاه سيعطي نفس النتيجة أيضًا.