يمثل نوع البيانات Time قيمة وقتية تتكوّن من الساعة والدقيقة والثانية.
وهو مستقل عن أي تاريخ تقويمي، ومناسب للقيم التي لا تحتاج إلى مكوّنات اليوم والشهر والسنة.
البنية:
نطاق التمثيل النصي: [-999:59:59, 999:59:59].
الدقة: ثانية واحدة.
التمثيل والأداء.
يخزّن نوع البيانات Time داخليًا عددًا صحيحًا موقّعًا من 32 بت يرمّز الثواني.
لقيمتَي Time وDateTime حجم البايت نفسه، ولذلك يكون أداؤهما متقاربًا.
التطبيع.
عند تحليل السلاسل النصية إلى Time، تُطبَّع مكوّنات الوقت ولا يُتحقَّق من صحتها.
على سبيل المثال، يُفسَّر 25:70:70 على أنه 26:11:10.
القيم السالبة.
إشارات الطرح البادئة مدعومة ويُحتفَظ بها.
تنشأ القيم السالبة عادةً من العمليات الحسابية على قيم Time.
بالنسبة إلى النوع Time، يُحتفَظ بالمدخلات السالبة سواء كانت نصية (مثل '-01:02:03') أو رقمية (مثل -3723).
الإشباع.
يُقيَّد مكوّن وقت اليوم بالنطاق [-999:59:59, 999:59:59].
تُمثَّل القيم التي تتجاوز فيها الساعات 999 (أو تقل عن -999)، وعند تحويلها من النص وإليه تكون على هيئة 999:59:59 (أو -999:59:59).
المناطق الزمنية.
لا يدعم Time المناطق الزمنية، أي إن قيم Time تُفسَّر من دون سياق زمني إقليمي.
يؤدي تحديد منطقة زمنية لـ Time كمعامل نوع أو أثناء إنشاء القيمة إلى حدوث خطأ.
وبالمثل، فإن محاولات تطبيق منطقة زمنية على أعمدة Time أو تغييرها غير مدعومة وتؤدي إلى خطأ.
لا يُعاد تفسير قيم Time ضمنيًا وفق مناطق زمنية مختلفة.
1. إنشاء جدول يحتوي على عمود من النوع Time وإدراج البيانات فيه:
CREATE TABLE tab
(
`event_id` UInt8,
`time` Time
)
ENGINE = TinyLog;
-- Parse Time
-- - from string,
-- - from integer interpreted as number of seconds since 00:00:00.
INSERT INTO tab VALUES (1, '14:30:25'), (2, 52225);
SELECT * FROM tab ORDER BY event_id;
┌─event_id─┬──────time─┐
1. │ 1 │ 14:30:25 │
2. │ 2 │ 14:30:25 │
└──────────┴───────────┘
2. التصفية حسب قيم Time
SET use_legacy_to_time = 0;
SELECT * FROM tab WHERE time = toTime('14:30:25')
┌─event_id─┬──────time─┐
1. │ 1 │ 14:30:25 │
2. │ 2 │ 14:30:25 │
└──────────┴───────────┘
يمكن تصفية قيم العمود Time باستخدام قيمة نصية في الشرط WHERE. وستُحوَّل تلقائيًا إلى Time:
SELECT * FROM tab WHERE time = '14:30:25'
┌─event_id─┬──────time─┐
1. │ 1 │ 14:30:25 │
2. │ 2 │ 14:30:25 │
└──────────┴───────────┘
3. معاينة النوع الناتج:
SELECT CAST('14:30:25' AS Time) AS column, toTypeName(column) AS type
┌────column─┬─type─┐
1. │ 14:30:25 │ Time │
└───────────┴──────┘
يمكن جمع قيمة Time مع قيمة Date أو Date32 لإنتاج DateTime أو DateTime64:
SET use_legacy_to_time = 0;
SELECT toDate('2024-07-15') + toTime('14:30:25') as datetime;
┌────────────datetime─┐
1. │ 2024-07-15 14:30:25 │
└─────────────────────┘
اطّلع على إضافة التاريخ والوقت للتعرّف على تفاصيل جميع التركيبات المدعومة وأنواع النتائج.
آخر تعديل في ٢٥ يونيو ٢٠٢٦