الانتقال إلى المحتوى الرئيسي
يمثل نوع البيانات Time64 وقتًا ضمن اليوم مع كسور من الثانية. ولا يتضمن أي مكوّنات لتاريخ تقويمي (اليوم، الشهر، السنة). تحدّد المعلمة precision عدد الخانات الكسرية، وبالتالي حجم التكة. حجم التكة (الدقة): 10-precision ثانية. النطاق الصالح: 0..9. والخيارات الشائعة هي 3 (مللي ثانية)، و6 (ميكروثانية)، و9 (نانوثانية). البنية:
Time64(precision)
داخليًا، يخزّن Time64 عددًا عشريًا موقّعًا من نوع 64 بت (Decimal64) لكسور الثواني. وتُحدَّد دقة التكة بواسطة المعلمة precision. المناطق الزمنية غير مدعومة: سيؤدي تحديد منطقة زمنية مع Time64 إلى حدوث خطأ. وعلى خلاف DateTime64، لا يخزّن Time64 مكوّن التاريخ. راجع أيضًا Time. نطاق التمثيل النصي: [-999:59:59.000, 999:59:59.999] عند precision = 3. وبوجه عام، يكون الحد الأدنى -999:59:59 والحد الأقصى 999:59:59 مع ما يصل إلى precision من الخانات الكسرية (بالنسبة إلى precision = 9، يكون الحد الأدنى -999:59:59.999999999).

تفاصيل التنفيذ

التمثيل. قيمة Decimal64 موقَّعة تمثّل عدد أجزاء الثانية باستخدام precision من الخانات الكسرية. التطبيع. عند تحليل السلاسل النصية إلى Time64، تُطبَّع مكوّنات الوقت من دون التحقق من صحتها. على سبيل المثال، يُفسَّر 25:70:70 على أنه 26:11:10. القيم السالبة. إشارات الطرح البادئة مدعومة ويُحتفَظ بها. تنشأ القيم السالبة عادةً من العمليات الحسابية على قيم Time64. بالنسبة إلى Time64، يُحتفَظ بالمدخلات السالبة سواء كانت نصية (مثل '-01:02:03.123') أو رقمية (مثل -3723.123). التشبيع. يُقيَّد مكوّن الوقت ضمن اليوم بالنطاق [-999:59:59.xxx, 999:59:59.xxx] عند التحويل إلى مكوّنات أو إجراء التسلسل إلى نص. قد تتجاوز القيمة الرقمية المخزنة هذا النطاق؛ ومع ذلك، فإن أي استخراج للمكوّنات (الساعات والدقائق والثواني) وأي تمثيل نصي يستخدمان القيمة المشبَّعة. المناطق الزمنية. لا يدعم Time64 المناطق الزمنية. يؤدي تحديد منطقة زمنية عند إنشاء نوع Time64 أو قيمة منه إلى حدوث خطأ. وبالمثل، فإن محاولات تطبيق منطقة زمنية على أعمدة Time64 أو تغييرها غير مدعومة وتؤدي إلى حدوث خطأ.

أمثلة

  1. إنشاء جدول يحتوي على عمود من النوع Time64 وإدراج البيانات فيه:
CREATE TABLE tab64
(
    `event_id` UInt8,
    `time` Time64(3)
)
ENGINE = TinyLog;
-- Parse Time64
-- - from string,
-- - from a number of seconds since 00:00:00 (fractional part according to precision).
INSERT INTO tab64 VALUES (1, '14:30:25'), (2, 52225.123), (3, '14:30:25');

SELECT * FROM tab64 ORDER BY event_id;
   ┌─event_id─┬────────time─┐
1. │        1 │ 14:30:25.000 │
2. │        2 │ 14:30:25.123 │
3. │        3 │ 14:30:25.000 │
   └──────────┴──────────────┘
  1. التصفية حسب قيم Time64
SELECT * FROM tab64 WHERE time = toTime64('14:30:25', 3);
   ┌─event_id─┬────────time─┐
1. │        1 │ 14:30:25.000 │
2. │        3 │ 14:30:25.000 │
   └──────────┴──────────────┘
SELECT * FROM tab64 WHERE time = toTime64(52225.123, 3);
   ┌─event_id─┬────────time─┐
1. │        2 │ 14:30:25.123 │
   └──────────┴──────────────┘
ملاحظة: يعامل toTime64 القيم الحرفية العددية على أنها ثوانٍ مع جزء كسري وفقًا للدقة المحددة، لذا حدِّد الخانات الكسرية المقصودة صراحةً.
  1. فحص النوع الناتج:
SELECT CAST('14:30:25.250' AS Time64(3)) AS column, toTypeName(column) AS type;
   ┌────────column─┬─type──────┐
1. │ 14:30:25.250 │ Time64(3) │
   └───────────────┴───────────┘

الجمع مع Date

يمكن جمع قيمة Time64 مع قيمة Date أو Date32 للحصول على DateTime64 بالمقياس نفسه لـ Time64:
SET use_legacy_to_time = 0;
SELECT toDate('2024-07-15') + toTime64('14:30:25.123456', 6) AS dt, toTypeName(dt);
   ┌─────────────────────────dt─┬─toTypeName(dt)─┐
1. │ 2024-07-15 14:30:25.123456 │ DateTime64(6)  │
   └────────────────────────────┴────────────────┘
راجع إضافة التاريخ والوقت لمزيد من التفاصيل حول جميع التركيبات المدعومة وأنواع النتائج. انظر أيضًا
آخر تعديل في ٢٥ يونيو ٢٠٢٦