المشكلات الشائعة في تحويل البيانات
يستخدم ClickHouse عمومًا السلوك نفسه المستخدم في برامج C++.
تختلف دوال to<type> وcast في سلوكهما في بعض الحالات، مثل حالة LowCardinality: إذ يزيل cast السمة LowCardinality، بينما لا تفعل دوال to<type> ذلك. وينطبق الأمر نفسه على Nullable. هذا السلوك غير متوافق مع معيار SQL، ويمكن تغييره باستخدام الإعداد cast_keep_nullable.
مثال:
SELECT
toTypeName(toLowCardinality('') AS val) AS source_type,
toTypeName(toString(val)) AS to_type_result_type,
toTypeName(CAST(val, 'String')) AS cast_result_type
┌ملاحظات حول دوال toString
تتيح عائلة الدوال toString التحويل بين الأرقام، والسلاسل النصية (لكن ليس السلاسل ذات الطول الثابت)، والتواريخ، والتواريخ المقترنة بوقت.
تقبل جميع هذه الدوال وسيطة واحدة.
- عند التحويل من سلسلة نصية أو إليها، تُنسَّق القيمة أو تُحلَّل وفق القواعد نفسها المستخدمة في تنسيق TabSeparated (وفي معظم تنسيقات النص الأخرى أيضًا). وإذا تعذّر تحليل السلسلة النصية، يُطرَح استثناء ويُلغى الطلب.
- عند تحويل التواريخ إلى أرقام أو العكس، يمثّل التاريخ عدد الأيام منذ بداية حقبة Unix.
- عند تحويل التواريخ المقترنة بوقت إلى أرقام أو العكس، يمثّل التاريخ مع الوقت عدد الثواني منذ بداية حقبة Unix.
- يمكن لدالة
toStringالخاصة بوسيطةDateTimeأن تأخذ وسيطةStringثانية تتضمن اسم المنطقة الزمنية، على سبيل المثال:Europe/Amsterdam. وفي هذه الحالة، يُنسَّق الوقت وفقًا للمنطقة الزمنية المحددة.
ملاحظات حول الدالتين toDate/toDateTime
تُعرَّف تنسيقات التاريخ والتاريخ المقترن بالوقت للدالتين toDate/toDateTime كما يلي:
YYYY-MM-DD
YYYY-MM-DD hh:mm:ssكاستثناء، عند التحويل من الأنواع الرقمية UInt32 أو Int32 أو UInt64 أو Int64 إلى Date، إذا كان الرقم أكبر من أو يساوي 65536، فسيُفسَّر على أنه Unix timestamp (وليس عدد الأيام)، ويُقرَّب إلى التاريخ.
ويتيح ذلك دعم الحالة الشائعة المتمثلة في كتابة toDate(unix_timestamp)، التي كانت ستؤدي بخلاف ذلك إلى حدوث خطأ، وستستلزم كتابة الصيغة الأكثر تعقيدًا toDate(toDateTime(unix_timestamp)).
يُجرى التحويل بين التاريخ وتاريخ مع وقت بالطريقة الطبيعية: بإضافة وقت صفري أو بحذف الوقت.
يستخدم التحويل بين الأنواع الرقمية القواعد نفسها المستخدمة في الإسناد بين الأنواع الرقمية المختلفة في C++.
مثال
SELECT
now() AS ts,
time_zone,
toString(ts, time_zone) AS str_tz_datetime
FROM system.time_zones
WHERE time_zone LIKE 'Europe%'
LIMIT 10┌──────────────────ts─┬─time_zone─────────┬─str_tz_datetime─────┐
│ 2023-09-08 19:14:59 │ Europe/Amsterdam │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Andorra │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Astrakhan │ 2023-09-08 23:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Athens │ 2023-09-08 22:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belfast │ 2023-09-08 20:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belgrade │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Berlin │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Bratislava │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Brussels │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Bucharest │ 2023-09-08 22:14:59 │
└─────────────────────┴───────────────────┴─────────────────────┘راجع أيضًا الدالة toUnixTimestamp.
CAST
أُضيف في: v1.1.0
يحوّل قيمة إلى نوع البيانات المحدد. وعلى خلاف الدالة reinterpret، تحاول CAST إنتاج القيمة نفسها في النوع الهدف. إذا لم يكن ذلك ممكنًا، يُرفَع استثناء.
البنية
CAST(x, T)
or CAST(x AS T)
or x::Tالوسائط
القيمة المُعادة
تُرجِع القيمة بعد تحويلها إلى نوع البيانات الهدف. Any
أمثلة
الاستخدام الأساسي
SELECT CAST(42, 'String')┌─CAST(42, 'String')─┐
│ 42 │
└────────────────────┘استخدام صيغة AS
SELECT CAST('2025-01-01' AS Date)┌─CAST('2025-01-01', 'Date')─┐
│ 2025-01-01 │
└────────────────────────────┘استخدام صياغة ::
SELECT '123'::UInt32┌─CAST('123', 'UInt32')─┐
│ 123 │
└───────────────────────┘DATE
أُضيف في: v21.2.0
يحوّل الوسيط إلى نوع البيانات Date. هذا اسم مستعار للتوافق مع MySQL للدالة toDate، ويتصرف بالطريقة نفسها التي تتصرف بها toDate.
الصيغة
DATE(expr)الوسيطات
القيمة المُعادة
تُرجع قيمة من نوع Date. Date
أمثلة
الاستخدام الأساسي
SELECT DATE('2023-01-01')2023-01-01accurateCast
أُضيف في: v1.1.0
يحوّل قيمة إلى نوع بيانات محدد. بخلاف CAST، يُجري accurateCast تحقّقًا أكثر صرامة من الأنواع ويطرح استثناءً إذا كان التحويل سيؤدي إلى فقدان الدقة أو إذا لم يكن التحويل ممكنًا.
هذه الدالة أكثر أمانًا من CAST العادي لأنها تمنع فقدان الدقة وعمليات التحويل غير الصالحة.
البنية
accurateCast(x, T)الوسيطات
القيمة المعادة
ترجع القيمة بعد تحويلها إلى نوع البيانات الهدف. Any
أمثلة
تحويل ناجح
SELECT accurateCast(42, 'UInt16')┌─accurateCast(42, 'UInt16')─┐
│ 42 │
└────────────────────────────┘من نص إلى رقم
SELECT accurateCast('123.45', 'Float64')┌─accurateCast('123.45', 'Float64')─┐
│ 123.45 │
└───────────────────────────────────┘accurateCastOrDefault
أُضيفت في: v21.1.0
تُحوِّل قيمة إلى نوع البيانات المحدد.
تشبه accurateCast، لكنها تُرجع قيمة افتراضية بدلًا من إثارة استثناء إذا تعذّر إجراء التحويل بدقة.
إذا جرى توفير قيمة افتراضية باعتبارها الوسيط الثاني، فيجب أن تكون من النوع الهدف. إذا لم تُوفَّر قيمة افتراضية، تُستخدم القيمة الافتراضية للنوع الهدف.
الصياغة
accurateCastOrDefault(x, T[, default_value])المعاملات
x— قيمة لتحويلها.AnyT— اسم نوع البيانات الهدف.const Stringdefault_value— اختياري. القيمة الافتراضية التي تُعاد إذا فشل التحويل.Any
القيمة المُعادة
تُعاد القيمة المحوَّلة إلى نوع البيانات الهدف، أو القيمة الافتراضية إذا لم يكن التحويل ممكنًا. Any
أمثلة
تحويل ناجح
SELECT accurateCastOrDefault(42, 'String')┌─accurateCastOrDefault(42, 'String')─┐
│ 42 │
└─────────────────────────────────────┘فشل التحويل مع قيمة افتراضية محددة صراحةً
SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32)┌─accurateCastOrDefault('abc', 'UInt32', CAST('999', 'UInt32'))─┐
│ 999 │
└───────────────────────────────────────────────────────────────┘تعذّر التحويل مع قيمة افتراضية ضمنية
SELECT accurateCastOrDefault('abc', 'UInt32')┌─accurateCastOrDefault('abc', 'UInt32')─┐
│ 0 │
└────────────────────────────────────────┘accurateCastOrNull
قُدِّمت في: v1.1.0
تحوّل قيمة إلى نوع البيانات المحدد.
وهي تشبه accurateCast، لكنها تُرجع NULL بدلًا من طرح استثناء إذا تعذّر إجراء التحويل بدقة.
تجمع هذه الدالة بين أمان accurateCast والمعالجة السلسة للأخطاء.
الصياغة
accurateCastOrNull(x, T)المعاملات
القيمة المُعادة
ترجع القيمة بعد تحويلها إلى نوع البيانات الهدف، أو NULL إذا تعذر التحويل. Any
أمثلة
تحويل ناجح
SELECT accurateCastOrNull(42, 'String')┌─accurateCastOrNull(42, 'String')─┐
│ 42 │
└──────────────────────────────────┘عند فشل التحويل، تُرجَع القيمة NULL
SELECT accurateCastOrNull('abc', 'UInt32')┌─accurateCastOrNull('abc', 'UInt32')─┐
│ ᴺᵁᴸᴸ │
└─────────────────────────────────────┘formatRow
أُضيفت في: v20.7.0
يحوّل أي تعبيرات إلى سلسلة نصية باستخدام التنسيق المحدد.
الصيغة
formatRow(format, x, y, ...)الوسائط
القيمة المُعادة
سلسلة منسّقة. (في التنسيقات النصية، تنتهي عادةً بمحرف سطر جديد). String
أمثلة
الاستخدام الأساسي
SELECT formatRow('CSV', number, 'good')
FROM numbers(3)┌─formatRow('CSV', number, 'good')─┐
│ 0,"good" ↴│
│ 1,"good" ↴│
│ 2,"good" ↴│
└──────────────────────────────────┘بتنسيق مخصص
SELECT formatRow('CustomSeparated', number, 'good')
FROM numbers(3)
SETTINGS format_custom_result_before_delimiter='<prefix>\n', format_custom_result_after_delimiter='<suffix>'┌─formatRow('CustomSeparated', number, 'good')─┐
│ <prefix> ↴│
│↳0 good ↴│
│↳<suffix> │
│ <prefix> ↴│
│↳1 good ↴│
│↳<suffix> │
│ <prefix> ↴│
│↳2 good ↴│
│↳<suffix> │
└──────────────────────────────────────────────┘formatRowNoNewline
أُضيف في: v20.7.0
مماثل لـ formatRow، لكنه يزيل محرف السطر الجديد من كل صف.
يحوّل تعبيرات عشوائية إلى سلسلة نصية باستخدام التنسيق المحدد، لكنه يزيل أي محارف سطر جديد لاحقة من النتيجة.
الصيغة
formatRowNoNewline(format, x, y, ...)الوسائط
القيمة المُعادة
تعيد سلسلة منسقة أزيلت منها فواصل الأسطر. String
أمثلة
الاستخدام الأساسي
SELECT formatRowNoNewline('CSV', number, 'good')
FROM numbers(3)┌─formatRowNoNewline('CSV', number, 'good')─┐
│ 0,"good" │
│ 1,"good" │
│ 2,"good" │
└───────────────────────────────────────────┘fromUnixTimestamp64Micro
استُحدث في: v20.5.0
يحوّل طابعًا زمنيًا لـ Unix بالميكروثانية إلى قيمة DateTime64 بدقة الميكروثانية.
تُعامَل قيمة الإدخال على أنها طابع زمني لـ Unix بدقة الميكروثانية (عدد الميكروثواني منذ 1970-01-01 00:00:00 UTC).
الصياغة
fromUnixTimestamp64Micro(value[, timezone])الوسائط
value— طابع زمني لـ Unix بالميكروثانية.Int64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
القيمة المُعادة
يعيد قيمة DateTime64 بدقة ميكروثانية. DateTime64(6)
أمثلة
مثال للاستخدام
SELECT fromUnixTimestamp64Micro(1640995200123456)┌─fromUnixTimestamp64Micro(1640995200123456)─┐
│ 2022-01-01 00:00:00.123456 │
└────────────────────────────────────────────┘fromUnixTimestamp64Milli
أُضيف في: v20.5.0
يحوّل طابعًا زمنيًا لـ Unix بالملّي ثانية إلى قيمة DateTime64 بدقة الملّي ثانية.
تُعامَل قيمة الإدخال على أنها طابع زمني لـ Unix بدقة الملّي ثانية (عدد الملّي ثواني منذ 1970-01-01 00:00:00 UTC).
الصياغة
fromUnixTimestamp64Milli(value[, timezone])الوسيطات
value— طابع زمني بنظام Unix بالمللي ثانية.Int64timezone— اختياري. المنطقة الزمنية للقيمة المعادة.String
القيمة المعادة
قيمة DateTime64 بدقة المللي ثانية. DateTime64(3)
أمثلة
مثال على الاستخدام
SELECT fromUnixTimestamp64Milli(1640995200123)┌─fromUnixTimestamp64Milli(1640995200123)─┐
│ 2022-01-01 00:00:00.123 │
└─────────────────────────────────────────┘fromUnixTimestamp64Nano
أُضيفت في: v20.5.0
تُحوِّل طابعًا زمنيًا من Unix بالنانوثانية إلى قيمة DateTime64 بدقة النانوثانية.
تُعامَل قيمة الإدخال على أنها طابع زمني من Unix بدقة النانوثانية (أي عدد النانوثواني منذ 1970-01-01 00:00:00 UTC).
البنية
fromUnixTimestamp64Nano(value[, timezone])المعاملات
value— طابع زمني لـ Unix بالنانوثانية.Int64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
القيمة المُعادة
تُرجِع قيمة من النوع DateTime64 بدقة نانوثانية. DateTime64(9)
أمثلة
مثال للاستخدام
SELECT fromUnixTimestamp64Nano(1640995200123456789)┌─fromUnixTimestamp64Nano(1640995200123456789)─┐
│ 2022-01-01 00:00:00.123456789 │
└──────────────────────────────────────────────┘fromUnixTimestamp64Second
أُضيف في: v24.12.0
يحوّل طابعًا زمنيًا من Unix بالثواني إلى قيمة DateTime64 بدقة الثواني.
تُعامَل قيمة الإدخال على أنها طابع زمني من Unix بدقة الثواني (أي عدد الثواني منذ 1970-01-01 00:00:00 UTC).
الصيغة
fromUnixTimestamp64Second(value[, timezone])الوسيطات
value— طابع زمني بنظام Unix بالثواني.Int64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
القيمة المُعادة
تُرجِع قيمة DateTime64 بدقة الثواني. DateTime64(0)
أمثلة
مثال على الاستخدام
SELECT fromUnixTimestamp64Second(1640995200)┌─fromUnixTimestamp64Second(1640995200)─┐
│ 2022-01-01 00:00:00 │
└───────────────────────────────────────┘parseDateTime
تم تقديمه في: v23.3.0
يُحلّل سلسلة تاريخ ووقت وفقًا لسلسلة تنسيق تاريخ خاصة بـ MySQL.
هذه الدالة هي عكس formatDateTime.
وهي تُحلّل وسيطًا من النوع String باستخدام سلسلة تنسيق من النوع String. وتُرجِع قيمة من النوع DateTime.
البنية
parseDateTime(time_string, format[, timezone])الأسماء البديلة: TO_UNIXTIME
الوسيطات
time_string— سلسلة نصية تُحلَّل إلى DateTime.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
يعيد قيمة من النوع DateTime مُحلَّلة من السلسلة النصية المُدخلة وفقًا لسلسلة تنسيق بأسلوب MySQL. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')┌─parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│ 2025-01-04 23:00:00 │
└───────────────────────────────────────────────────────────┘parseDateTime32BestEffort
أُضيف في: v20.9.0
يحوّل التمثيل النصي للتاريخ والوقت إلى نوع البيانات DateTime.
تحلّل الدالة تنسيقات ISO 8601 وRFC 1123 - 5.2.14 RFC-822 Date and Time Specification وتنسيقات التاريخ والوقت الخاصة بـ ClickHouse، بالإضافة إلى بعض التنسيقات الأخرى.
الصيغة
parseDateTime32BestEffort(time_string[, time_zone])الوسائط
time_string— قيمة من نوع String تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringوفقًا لها.String
القيمة المعادة
تعيد time_string كقيمة من نوع DateTime. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTime32BestEffort('23/10/2025 12:12:57')
AS parseDateTime32BestEffort┌─parseDateTime32BestEffort─┐
│ 2025-10-23 12:12:57 │
└───────────────────────────┘مع تحديد المنطقة الزمنية
SELECT parseDateTime32BestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul')
AS parseDateTime32BestEffort┌─parseDateTime32BestEffort─┐
│ 2025-08-18 10:22:16 │
└───────────────────────────┘الطابع الزمني ليونكس
SELECT parseDateTime32BestEffort('1284101485')
AS parseDateTime32BestEffort┌─parseDateTime32BestEffort─┐
│ 2010-09-10 06:51:25 │
└───────────────────────────┘parseDateTime32BestEffortOrNull
أُضيفت في: v20.9.0
مماثلة لـ parseDateTime32BestEffort، باستثناء أنها تُرجِع NULL عند مواجهة تنسيق تاريخ يتعذّر معالجته.
الصياغة
parseDateTime32BestEffortOrNull(time_string[, time_zone])الوسائط
time_string— قيمة من النوعStringتحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لهاtime_string.String
القيمة المعادة
يعيد كائن DateTime مُفسَّرًا من السلسلة، أو NULL إذا فشل التفسير. DateTime
أمثلة
مثال على الاستخدام
SELECT
parseDateTime32BestEffortOrNull('23/10/2025 12:12:57') AS valid,
parseDateTime32BestEffortOrNull('invalid date') AS invalid┌───────────────valid─┬─invalid─┐
│ 2025-10-23 12:12:57 │ ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘parseDateTime32BestEffortOrZero
أُضيفت في: v20.9.0
مطابقة لـ parseDateTime32BestEffort، باستثناء أنها تُرجِع تاريخًا صفريًا أو قيمة تاريخ ووقت صفرية عند مصادفة تنسيق تاريخ يتعذر معالجته.
البنية
parseDateTime32BestEffortOrZero(time_string[, time_zone])الوسائط
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لهاtime_string.String
القيمة المعادة
يعيد كائن DateTime ناتجًا عن تحليل السلسلة، أو التاريخ الصفري (1970-01-01 00:00:00) إذا فشلت عملية التحليل. DateTime
أمثلة
مثال على الاستخدام
SELECT
parseDateTime32BestEffortOrZero('23/10/2025 12:12:57') AS valid,
parseDateTime32BestEffortOrZero('invalid date') AS invalid┌───────────────valid─┬─────────────invalid─┐
│ 2025-10-23 12:12:57 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘parseDateTime64
أُضيف في: v24.11.0
يُحلِّل سلسلة تاريخ ووقت بدقة أجزاء من الثانية وفقًا لسلسلة تنسيق تاريخ MySQL.
هذه الدالة هي المعكوس لـ formatDateTime لـ DateTime64.
وهي تُحلِّل وسيطة من النوع String باستخدام String للتنسيق. وتُرجع نوع DateTime64 يمكنه تمثيل التواريخ من 0000 إلى 9999 بدقة أجزاء من الثانية (تغطي درجات الدقة العالية نطاقًا أضيق لأن القيمة تُخزَّن في Int64 كعدد من tick: تصل الدقة 8 إلى نحو 4892، وتمتد الدقة 9 من 1677 إلى 2262).
الصيغة
parseDateTime64(time_string, format[, timezone])الوسيطات
time_string— سلسلة نصية يُراد تحليلها إلى DateTime64.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
يعيد قيمة DateTime64 مُحلَّلة من سلسلة الإدخال وفق سلسلة تنسيق بأسلوب MySQL. DateTime64
أمثلة
مثال على الاستخدام
SELECT parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')┌─parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│ 2025-01-04 23:00:00.123000 │
└────────────────────────────────────────────────────────────────────┘parseDateTime64BestEffort
أُضيف في: v20.1.0
تماثل الدالة parseDateTimeBestEffort، لكنها تُحلِّل أيضًا المللي ثانية والميكروثانية وتُرجع نوع البيانات DateTime64.
البنية
parseDateTime64BestEffort(time_string[, precision[, time_zone]])المعاملات
time_string— قيمة من نوعStringتحتوي على تاريخ أو تاريخ ووقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للملّي ثانية، و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تحلّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
القيمة المُعادة
تعيد time_string بعد تحويله إلى نوع البيانات DateTime64. DateTime64
أمثلة
مثال للاستخدام
SELECT parseDateTime64BestEffort('2025-01-01') AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346') AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346',6) AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346',3,'Asia/Istanbul') AS a, toTypeName(a) AS t
FORMAT PrettyCompactMonoBlock┌──────────────────────────a─┬─t──────────────────────────────┐
│ 2025-01-01 01:01:00.123000 │ DateTime64(3) │
│ 2025-01-01 00:00:00.000000 │ DateTime64(3) │
│ 2025-01-01 01:01:00.123460 │ DateTime64(6) │
│ 2025-12-31 22:01:00.123000 │ DateTime64(3, 'Asia/Istanbul') │
└────────────────────────────┴────────────────────────────────┘parseDateTime64BestEffortOrNull
مُتاحة منذ: v20.1.0
مطابقة للدالة parseDateTime64BestEffort، إلا أنها تُرجع NULL عند مواجهة تنسيق تاريخ يتعذر معالجته.
الصياغة
parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]])الوسيطات
time_string— قيمةStringتحتوي على تاريخ أو تاريخ مع وقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للملّي ثانية و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تُحلِّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
القيمة المُعادة
تُعيد time_string بعد تحويله إلى DateTime64، أو NULL إذا تعذّر تحليل الإدخال. DateTime64 أو NULL
أمثلة
مثال على الاستخدام
SELECT parseDateTime64BestEffortOrNull('2025-01-01 01:01:00.123') AS valid,
parseDateTime64BestEffortOrNull('invalid') AS invalid┌───────────────────valid─┬─invalid─┐
│ 2025-01-01 01:01:00.123 │ ᴺᵁᴸᴸ │
└─────────────────────────┴─────────┘parseDateTime64BestEffortOrZero
قُدِّم في: v20.1.0
مماثلة لـ parseDateTime64BestEffort، إلا أنها تُرجع تاريخًا صفريًا أو تاريخًا ووقتًا صفريين عند مصادفة تنسيق تاريخ يتعذر معالجته.
الصياغة
parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]])الوسيطات
time_string— قيمة من نوع String تحتوي على تاريخ أو تاريخ مع وقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للمللي ثانية، و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تحلّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
القيمة المعادة
تعيد time_string بعد تحويله إلى DateTime64، أو التاريخ/التاريخ والوقت الصفري (1970-01-01 00:00:00.000) إذا تعذّر تحليل الإدخال. DateTime64
أمثلة
مثال على الاستخدام
SELECT parseDateTime64BestEffortOrZero('2025-01-01 01:01:00.123') AS valid,
parseDateTime64BestEffortOrZero('invalid') AS invalid┌───────────────────valid─┬─────────────────invalid─┐
│ 2025-01-01 01:01:00.123 │ 1970-01-01 00:00:00.000 │
└─────────────────────────┴─────────────────────────┘parseDateTime64BestEffortUS
تم تقديمها في: v22.8.0
مماثلة لـ parseDateTime64BestEffort، باستثناء أن هذه الدالة تُفضّل تنسيق التاريخ الأمريكي (MM/DD/YYYY وما إلى ذلك) عند وجود التباس.
البنية
parseDateTime64BestEffortUS(time_string [, precision [, time_zone]])الوسيطات
time_string—Stringيحتوي على تاريخ أو تاريخ يتضمن وقتًا لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للملّي ثانية، و6للميكروثانية. الافتراضي:3.UInt8time_zone— اختياري. المنطقة الزمنية. تحلّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
القيمة المُعادة
تعيد time_string بعد تحويله إلى DateTime64 مع تفضيل تنسيق التاريخ الأمريكي في الحالات الملتبسة. DateTime64
أمثلة
مثال على الاستخدام
SELECT parseDateTime64BestEffortUS('02/10/2025 12:30:45.123') AS us_format,
parseDateTime64BestEffortUS('15/08/2025 10:15:30.456') AS fallback_to_standard┌───────────────us_format─┬────fallback_to_standard─┐
│ 2025-02-10 12:30:45.123 │ 2025-08-15 10:15:30.456 │
└─────────────────────────┴─────────────────────────┘parseDateTime64BestEffortUSOrNull
أُضيفت في: v22.8.0
مماثلة لـ parseDateTime64BestEffort، باستثناء أن هذه الدالة تفضّل تنسيق التاريخ الأمريكي (MM/DD/YYYY وما إلى ذلك) عند وجود التباس، وتُرجع NULL إذا صادفت تنسيق تاريخ لا يمكن معالجته.
البنية
parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]])الوسيطات
time_string— قيمةStringتحتوي على تاريخ أو تاريخًا مع وقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للميلي ثانية، و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تُحلِّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
القيمة المُعادة
تعيد time_string بعد تحويله إلى DateTime64 مع تفضيل التنسيق الأمريكي، أو NULL إذا تعذر تحليل الإدخال. DateTime64 أو NULL
أمثلة
مثال على الاستخدام
SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us,
parseDateTime64BestEffortUSOrNull('invalid') AS invalid┌────────────────valid_us─┬─invalid─┐
│ 2025-02-10 12:30:45.123 │ ᴺᵁᴸᴸ │
└─────────────────────────┴─────────┘parseDateTime64BestEffortUSOrZero
أُضيف في: v22.8.0
مماثلة لـ parseDateTime64BestEffort، باستثناء أن هذه الدالة تفضّل تنسيق التاريخ الأمريكي (MM/DD/YYYY وما إلى ذلك) عند وجود التباس، وتُرجع التاريخ الصفري أو التاريخ والوقت الصفري إذا صادفت تنسيق تاريخ يتعذّر معالجته.
الصياغة
parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]])الوسيطات
time_string— قيمةStringتحتوي على تاريخ أو تاريخ مع وقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للميلي ثانية، و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تُحلِّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
القيمة المُعادة
تعيد time_string بعد تحويله إلى DateTime64 باستخدام تفضيل التنسيق الأمريكي، أو قيمة التاريخ/التاريخ والوقت الصفرية (1970-01-01 00:00:00.000) إذا تعذّر تحليل الإدخال. DateTime64
أمثلة
مثال على الاستخدام
SELECT parseDateTime64BestEffortUSOrZero('02/10/2025 12:30:45.123') AS valid_us,
parseDateTime64BestEffortUSOrZero('invalid') AS invalid┌────────────────valid_us─┬─────────────────invalid─┐
│ 2025-02-10 12:30:45.123 │ 1970-01-01 00:00:00.000 │
└─────────────────────────┴─────────────────────────┘parseDateTime64InJodaSyntax
أُضيف في: v24.10.0
يُحلِّل سلسلة تاريخ ووقت بدقة أجزاء من الثانية وفقًا لسلسلة تنسيق تاريخ Joda.
هذه الدالة هي معكوس formatDateTimeInJodaSyntax لـ DateTime64.
تُحلِّل وسيطًا من النوع String باستخدام سلسلة تنسيق بأسلوب Joda. وتُرجع نوع DateTime64، الذي يمكنه تمثيل التواريخ من 0000 إلى 9999 بدقة أجزاء من الثانية (تغطي درجات الدقة الأعلى نطاقًا أضيق لأن القيمة تُخزَّن في عدد Int64 من وحدات tick: تصل الدقة 8 إلى نحو 4892، وتمتد الدقة 9 من 1677 إلى 2262).
راجِع توثيق Joda Time للاطلاع على أنماط التنسيق.
البنية
parseDateTime64InJodaSyntax(time_string, format[, timezone])الوسيطات
time_string— قيمةStringالمراد تحليلها إلى DateTime64.Stringformat— سلسلة تنسيق بصياغة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
يعيد قيمة من النوع DateTime64 جرى تحليلها من سلسلة الإدخال وفقًا لسلسلة التنسيق بأسلوب Joda. DateTime64
أمثلة
مثال استخدام
SELECT parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')┌─parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│ 2025-01-04 23:00:00.123 │
└───────────────────────────────────────────────────────────────────────────────────┘parseDateTime64InJodaSyntaxOrNull
أُضيف في: v24.10.0
مماثلة لـ parseDateTime64InJodaSyntax، لكنها تُرجع NULL عند مواجهة تنسيق تاريخ يتعذّر تحليله.
البنية
parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone])الوسيطات
time_string— سلسلة نصية لتحليلها إلى DateTime64.Stringformat— سلسلة تنسيق بصيغة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
يعيد قيمة DateTime64 مُحلَّلة من سلسلة الإدخال، أو NULL إذا فشل التحليل. Nullable(DateTime64)
أمثلة
مثال على الاستخدام
SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')┌─parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│ 2025-01-04 23:00:00.123 │
└─────────────────────────────────────────────────────────────────────────────────────────┘parseDateTime64InJodaSyntaxOrZero
أُضيف في: v24.10.0
مثل parseDateTime64InJodaSyntax، لكنها تُرجع التاريخ الصفري عند مواجهة تنسيق تاريخ غير قابل للتحليل.
البنية
parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone])الوسيطات
time_string— سلسلة نصية لتحليلها إلى DateTime64.Stringformat— سلسلة تنسيق بصياغة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المعادة
يعيد قيمة DateTime64 جرى تحليلها من سلسلة الإدخال، أو قيمة DateTime64 صفرية إذا فشل التحليل. DateTime64
أمثلة
مثال على الاستخدام
SELECT parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')┌─parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│ 2025-01-04 23:00:00.123 │
└─────────────────────────────────────────────────────────────────────────────────────────┘parseDateTime64OrNull
أُضيفت في: v24.11.0
مماثلة لـ parseDateTime64، ولكنها تُرجع NULL عند مصادفة تنسيق تاريخ يتعذّر تحليله.
البنية
parseDateTime64OrNull(time_string, format[, timezone])الوسيطات
time_string— سلسلة نصية تُحلَّل إلى DateTime64.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
يعيد قيمة DateTime64 مُحلَّلة من سلسلة الإدخال، أو NULL إذا تعذّر التحليل. Nullable(DateTime64)
أمثلة
مثال على الاستخدام
SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')┌─parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│ 2025-01-04 23:00:00.123000 │
└──────────────────────────────────────────────────────────────────────────┘parseDateTime64OrZero
أُضيف في: v24.11.0
مماثلة لـ parseDateTime64، لكنها تُرجع التاريخ الصفري عند مواجهة تنسيق تاريخ يتعذر تحليله.
البنية
parseDateTime64OrZero(time_string, format[, timezone])الوسيطات
time_string— سلسلة نصية تُحلَّل إلى DateTime64.Stringformat— سلسلة تنسيق تحدد كيفية تحليلtime_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المعادة
تُرجِع قيمة DateTime64 مُحلَّلة من السلسلة النصية المُدخلة، أو قيمة DateTime64 صفرية إذا فشل التحليل. DateTime64
أمثلة
مثال على الاستخدام
SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')┌─parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│ 2025-01-04 23:00:00.123000 │
└──────────────────────────────────────────────────────────────────────────┘parseDateTimeBestEffort
أُضيف في: v1.1.0
يحوِّل قيمة تاريخ ووقت بصيغة String إلى نوع البيانات DateTime. تُحلِّل الدالة مواصفة التاريخ والوقت ISO 8601، وRFC 1123 - 5.2.14 RFC-822، وتنسيقات التاريخ والوقت الخاصة بـ ClickHouse، وبعض التنسيقات الأخرى.
التنسيقات غير القياسية المدعومة:
- سلسلة تحتوي على طابع زمني Unix مكوَّن من 9 إلى 10 أرقام.
- سلسلة تتضمن مكوّن تاريخ ومكوّن وقت:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss، إلخ. - سلسلة تتضمن تاريخًا، ولكن من دون مكوّن وقت:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YY، إلخ. - سلسلة تتضمن يومًا ووقتًا:
DD,DD hh,DD hh:mm. في هذه الحالة، يُستبدلMMبـ01. - سلسلة تتضمن التاريخ والوقت مع معلومات إزاحة المنطقة الزمنية:
YYYY-MM-DD hh:mm:ss ±h:mm، إلخ. - طابع زمني بتنسيق syslog:
Mmm dd hh:mm:ss. على سبيل المثال:Jun 9 14:20:32.
بالنسبة إلى جميع التنسيقات التي تحتوي على فاصل، تُحلِّل الدالة أسماء الأشهر المكتوبة باسمها الكامل أو بأول ثلاثة أحرف من اسم الشهر. إذا لم تُحدَّد السنة، فتُعتبر مساوية للسنة الحالية.
البنية
parseDateTimeBestEffort(time_string[, time_zone])الوسائط
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringوفقًا لها.String
القيمة المُعادة
يعيد time_string على هيئة DateTime. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort┌─parseDateTimeBestEffort─┐
│ 2025-10-23 12:12:57 │
└─────────────────────────┘مع تحديد المنطقة الزمنية
SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') AS parseDateTimeBestEffort┌─parseDateTimeBestEffort─┐
│ 2025-08-18 10:22:16 │
└─────────────────────────┘الطابع الزمني في Unix
SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort┌─parseDateTimeBestEffort─┐
│ 2025-01-01 00:00:00 │
└─────────────────────────┘parseDateTimeBestEffortOrNull
أُضيفت في: v1.1.0
هي مثل parseDateTimeBestEffort تمامًا، باستثناء أنها تُرجع NULL عندما تصادف تنسيق تاريخ يتعذر معالجته.
تحلّل الدالة ISO 8601 وRFC 1123 - 5.2.14 RFC-822 Date and Time Specification وتنسيقات التاريخ والوقت الخاصة بـ ClickHouse وبعض التنسيقات الأخرى.
التنسيقات غير القياسية المدعومة:
- سلسلة تحتوي على Unix timestamp مكوّن من 9 إلى 10 أرقام.
- سلسلة تحتوي على مكوّن تاريخ ومكوّن وقت:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss، إلخ. - سلسلة تحتوي على تاريخ، ولكن من دون مكوّن وقت:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YY، إلخ. - سلسلة تحتوي على يوم ووقت:
DD,DD hh,DD hh:mm. في هذه الحالة، يُستبدلMMبـ01. - سلسلة تتضمن التاريخ والوقت إلى جانب معلومات إزاحة المنطقة الزمنية:
YYYY-MM-DD hh:mm:ss ±h:mm، إلخ. - syslog timestamp:
Mmm dd hh:mm:ss. على سبيل المثال:Jun 9 14:20:32.
بالنسبة إلى جميع التنسيقات التي تتضمن فاصلًا، تحلّل الدالة أسماء الأشهر المكتوبة باسمها الكامل أو بأول ثلاثة أحرف من اسم الشهر. إذا لم تُحدَّد السنة، فتُعد مساوية للسنة الحالية.
البنية
parseDateTimeBestEffortOrNull(time_string[, time_zone])الوسيطات
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُفسَّرtime_stringوفقًا لها.String
القيمة المعادة
يعيد time_string كقيمة من النوع DateTime، أو NULL إذا تعذر تفسير المُدخل. DateTime أو NULL
أمثلة
مثال على الاستخدام
SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid,
parseDateTimeBestEffortOrNull('invalid') AS invalid┌───────────────valid─┬─invalid─┐
│ 2025-10-23 12:12:57 │ ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘parseDateTimeBestEffortOrZero
قُدِّمت في: v1.1.0
مماثلة لـ parseDateTimeBestEffort، باستثناء أنها تُرجع zero date أو zero date time عند مصادفة تنسيق تاريخ يتعذر معالجته.
تحلّل الدالة ISO 8601 وRFC 1123 - 5.2.14 RFC-822 Date and Time Specification وتنسيقات التاريخ والوقت الخاصة بـ ClickHouse، بالإضافة إلى بعض التنسيقات الأخرى.
التنسيقات غير القياسية المدعومة:
- سلسلة تحتوي على Unix timestamp مكوّن من 9 إلى 10 أرقام.
- سلسلة تتضمن مكوّن تاريخ ومكوّن وقت:
YYYYMMDDhhmmss,DD/MM/YYYY hh:mm:ss,DD-MM-YY hh:mm,YYYY-MM-DD hh:mm:ss، إلخ. - سلسلة تتضمن تاريخًا، ولكن من دون مكوّن وقت:
YYYY,YYYYMM,YYYY*MM,DD/MM/YYYY,DD-MM-YY، إلخ. - سلسلة تتضمن يومًا ووقتًا:
DD,DD hh,DD hh:mm. في هذه الحالة، يُستبدلMMبـ01. - سلسلة تتضمن التاريخ والوقت إلى جانب معلومات إزاحة المنطقة الزمنية:
YYYY-MM-DD hh:mm:ss ±h:mm، إلخ. - syslog timestamp:
Mmm dd hh:mm:ss. على سبيل المثال:Jun 9 14:20:32.
بالنسبة إلى جميع التنسيقات التي تتضمن فاصلًا، تحلّل الدالة أسماء الأشهر المكتوبة إما بصيغتها الكاملة أو بأول ثلاثة أحرف منها. إذا لم تُحدَّد السنة، فتُعتبر السنة الحالية.
الصيغة
parseDateTimeBestEffortOrZero(time_string[, time_zone])المعاملات
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringوفقًا لها.String
القيمة المعادة
يُرجع time_string كـ DateTime، أو تاريخًا/تاريخًا ووقتًا صفريًا (1970-01-01 أو 1970-01-01 00:00:00) إذا تعذّر تحليل المُدخل. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTimeBestEffortOrZero('23/10/2025 12:12:57') AS valid,
parseDateTimeBestEffortOrZero('invalid') AS invalid┌───────────────valid─┬─────────────invalid─┐
│ 2025-10-23 12:12:57 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘parseDateTimeBestEffortUS
تم تقديمه في: v1.1.0
تعمل هذه الدالة مثل parseDateTimeBestEffort مع تنسيقات التاريخ وفق ISO، مثل YYYY-MM-DD hh:mm:ss، ومع تنسيقات التاريخ الأخرى التي يمكن فيها استخراج مكوِّنَي الشهر واليوم بوضوح ومن دون التباس، مثل YYYYMMDDhhmmss وYYYY-MM وDD hh وYYYY-MM-DD hh:mm:ss ±h:mm.
إذا تعذّر استخراج مكوِّنَي الشهر واليوم بوضوح ومن دون التباس، مثل MM/DD/YYYY أو MM-DD-YYYY أو MM-DD-YY، فإنها تفضّل تنسيق التاريخ الأمريكي بدلًا من DD/MM/YYYY أو DD-MM-YYYY أو DD-MM-YY.
واستثناءً مما سبق، إذا كانت قيمة الشهر أكبر من 12 وأقل من أو تساوي 31، فستعود هذه الدالة إلى سلوك parseDateTimeBestEffort. فعلى سبيل المثال، يُفسَّر 15/08/2020 على أنه 2020-08-15.
البنية
parseDateTimeBestEffortUS(time_string[, time_zone])الوسيطات
time_string— قيمةStringتحتوي على تاريخ ووقت لتحويله.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringعلى أساسها.String
القيمة المُعادة
يعيد time_string كقيمة DateTime مع تفضيل تنسيق التاريخ الأمريكي في الحالات الملتبسة. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTimeBestEffortUS('02/10/2025') AS us_format,
parseDateTimeBestEffortUS('15/08/2025') AS fallback_to_standard┌───────────us_format─┬─fallback_to_standard─┐
│ 2025-02-10 00:00:00 │ 2025-08-15 00:00:00 │
└─────────────────────┴──────────────────────┘parseDateTimeBestEffortUSOrNull
تم تقديمها في: v1.1.0
مماثلة للدالة parseDateTimeBestEffortUS، باستثناء أنها تُرجع NULL عندما تصادف تنسيق تاريخ يتعذر معالجته.
تتصرف هذه الدالة مثل parseDateTimeBestEffort مع تنسيقات تاريخ ISO، لكنها تفضّل تنسيق التاريخ الأمريكي في الحالات الملتبسة، مع إرجاع NULL عند حدوث أخطاء في التحليل.
البنية
parseDateTimeBestEffortUSOrNull(time_string[, time_zone])الوسيطات
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringوفقًا لها.String
القيمة المعادة
يعيد time_string كقيمة من نوع DateTime باستخدام تفضيل التنسيق الأمريكي، أو NULL إذا تعذّر تحليل الإدخال. DateTime أو NULL
أمثلة
مثال على الاستخدام
SELECT parseDateTimeBestEffortUSOrNull('02/10/2025') AS valid_us,
parseDateTimeBestEffortUSOrNull('invalid') AS invalid┌────────────valid_us─┬─invalid─┐
│ 2025-02-10 00:00:00 │ ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘parseDateTimeBestEffortUSOrZero
أُضيفت في: v1.1.0
هي مماثلة للدالة parseDateTimeBestEffortUS، باستثناء أنها تُرجِع تاريخًا صفريًا (1970-01-01) أو تاريخًا صفريًا مع وقت (1970-01-01 00:00:00) عند مواجهة تنسيق تاريخ يتعذر معالجته.
تعمل هذه الدالة مثل parseDateTimeBestEffort مع تنسيقات تاريخ ISO، لكنها تُفضّل تنسيق التاريخ الأمريكي في الحالات الملتبسة، وتُرجِع قيمة صفرية عند حدوث أخطاء في التحليل.
البنية
parseDateTimeBestEffortUSOrZero(time_string[, time_zone])الوسيطات
time_string— قيمة من النوعStringتحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لهاtime_string.String
القيمة المعادة
تُعيد time_string على هيئة DateTime مع تفضيل التنسيق الأمريكي، أو التاريخ/التاريخ والوقت الصفري (1970-01-01 أو 1970-01-01 00:00:00) إذا تعذّر تفسير الإدخال. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTimeBestEffortUSOrZero('02/10/2025') AS valid_us,
parseDateTimeBestEffortUSOrZero('invalid') AS invalid┌────────────valid_us─┬─────────────invalid─┐
│ 2025-02-10 00:00:00 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘parseDateTimeInJodaSyntax
قُدِّمت في: v23.3.0
تحلّل سلسلة تاريخ ووقت وفقًا لـ date format string بنمط Joda.
هذه الدالة هي معكوس formatDateTimeInJodaSyntax.
وهي تحلّل String argument باستخدام format String بنمط Joda. وتُرجِع نوع DateTime.
ارجع إلى توثيق Joda Time للاطلاع على أنماط التنسيق.
البنية
parseDateTimeInJodaSyntax(time_string, format[, timezone])المعاملات
time_string— سلسلة نصية تُحلَّل إلى DateTime.Stringformat— سلسلة تنسيق ببنية Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
تعيد قيمة DateTime بعد تحليل سلسلة الإدخال النصية وفق سلسلة التنسيق بنمط Joda. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')┌─parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│ 2025-01-04 23:00:00 │
└─────────────────────────────────────────────────────────────────────────┘parseDateTimeInJodaSyntaxOrNull
أُضيفت في: v23.3.0
مماثلة لـ parseDateTimeInJodaSyntax، لكنها تُرجِع NULL عند مصادفة تنسيق تاريخ يتعذر تحليله.
البنية
parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone])الوسيطات
time_string— قيمة String المطلوب تحليلها إلى DateTime.Stringformat— سلسلة تنسيق ببناء جملة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المعادة
يُرجع قيمة DateTime مُحلَّلة من سلسلة الإدخال، أو NULL إذا فشل التحليل. Nullable(DateTime)
أمثلة
مثال على الاستخدام
SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')┌─parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│ 2025-01-04 23:00:00 │
└───────────────────────────────────────────────────────────────────────────────┘parseDateTimeInJodaSyntaxOrZero
قُدِّم في: v23.3.0
مماثلة لـ parseDateTimeInJodaSyntax، لكنها تُرجع التاريخ الصفري عند مواجهة تنسيق تاريخ يتعذر تحليله.
الصياغة
parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone])الوسيطات
time_string— سلسلة نصية المطلوب تحليلها إلى DateTime.Stringformat— سلسلة تنسيق ببناء جملة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المعادة
يعيد قيمة DateTime ناتجة عن تحليل سلسلة الإدخال، أو قيمة DateTime صفرية إذا فشل التحليل. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')┌─parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│ 2025-01-04 23:00:00 │
└───────────────────────────────────────────────────────────────────────────────┘parseDateTimeOrNull
أُضيفت في: v23.3.0
مثل parseDateTime، لكنها تُرجع NULL عند مواجهة تنسيق تاريخ يتعذر تحليله.
البنية
parseDateTimeOrNull(time_string, format[, timezone])الأسماء البديلة: str_to_date
المعاملات
time_string— سلسلة نصية يُراد تحليلها إلى DateTime.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
يعيد قيمة DateTime مُحلَّلة من سلسلة الإدخال، أو NULL إذا تعذّر التحليل. Nullable(DateTime)
أمثلة
مثال على الاستخدام
SELECT parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')┌─parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│ 2025-01-04 23:00:00 │
└─────────────────────────────────────────────────────────────────┘parseDateTimeOrZero
استُحدث في: v23.3.0
مماثلة لـ parseDateTime، لكنها تُرجع التاريخ الصفري عند مصادفة تنسيق تاريخ غير قابل للتحليل.
الصياغة
parseDateTimeOrZero(time_string, format[, timezone])الوسيطات
time_string— سلسلة نصية مطلوب تحليلها إلى DateTime.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
القيمة المُعادة
يعيد قيمة DateTime ناتجة عن تحليل سلسلة الإدخال، أو zero DateTime إذا فشل التحليل. DateTime
أمثلة
مثال على الاستخدام
SELECT parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')┌─parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│ 2025-01-04 23:00:00 │
└─────────────────────────────────────────────────────────────────┘reinterpret
قُدِّمت في: v1.1.0
تستخدم نفس تسلسل بايتات المصدر في الذاكرة للقيمة المعطاة x، وتُعيد تفسيره كنوع الوجهة.
عندما يكون نوع الوجهة هو String، لا تكون المصفوفة المصدر Array مدعومة إلا إذا كان نوع عناصرها ثابت الحجم ومتجاورًا في الذاكرة (على سبيل المثال، Array(UInt8) أو Array(FixedString(2)))؛ وتُنسخ بايتات عناصرها حرفيًا بترتيبها الأصلي في الذاكرة، بحيث يمكن إعادة تفسير النتيجة مرة أخرى إلى النوع الأصلي Array على أي معمارية. أما المصفوفات التي تكون عناصرها متغيرة الطول (على سبيل المثال، Array(String)) أو قابلة لأن تكون NULL (على سبيل المثال، Array(Nullable(Int32))) فهي غير مدعومة.
البنية
reinterpret(x, type)الوسائط
x— القيمة المطلوب إعادة تفسيرها. عند إعادة التفسير إلىString، يجب أن يحتوي المصدرArrayعلى عناصر متجاورة ثابتة الحجم.Anytype— النوع الهدف. إذا كان مصفوفة، فيجب أن يكون نوع عناصر المصفوفة من الأنواع ذات الطول الثابت.String
القيمة المُعادة
قيمة من النوع الهدف. Any
أمثلة
مثال على الاستخدام
SELECT reinterpret(toInt8(-1), 'UInt8') AS int_to_uint,
reinterpret(toInt8(1), 'Float32') AS int_to_float,
reinterpret('1', 'UInt32') AS string_to_int┌─int_to_uint─┬─int_to_float─┬─string_to_int─┐
│ 255 │ 1e-45 │ 49 │
└─────────────┴──────────────┴───────────────┘مثال على النوع Array
SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS string_to_array_of_Float32┌─string_to_array_of_Float32─┐
│ [5.626,6.626,5.626,6.626] │
└────────────────────────────┘مثال لتحويل Array إلى String
SELECT hex(reinterpret([toUInt8(1), toUInt8(2), toUInt8(255)]::Array(UInt8), 'String')) AS array_of_UInt8_to_string┌─array_of_UInt8_to_string─┐
│ 0102FF │
└──────────────────────────┘reinterpretAsDate
قُدِّم في: v1.1.0
يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Date (بافتراض ترتيب البايتات little endian)، وهي عدد الأيام منذ بداية Unix epoch 1970-01-01
البنية
reinterpretAsDate(x)الوسيطات
x— عدد الأيام منذ بداية حقبة Unix.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المعادة
Date. Date
أمثلة
مثال على الاستخدام
SELECT reinterpretAsDate(65), reinterpretAsDate('A')┌─reinterpretAsDate(65)─┬─reinterpretAsDate('A')─┐
│ 1970-03-07 │ 1970-03-07 │
└───────────────────────┴────────────────────────┘reinterpretAsDateTime
أُضيف في: v1.1.0
يعيد تفسير قيمة الإدخال على أنها قيمة من نوع DateTime (على افتراض ترتيب little endian)، وهي عدد الأيام منذ بداية حقبة Unix 1970-01-01
الصياغة
reinterpretAsDateTime(x)الوسائط
x— عدد الثواني منذ بداية حقبة يونكس.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المعادة
التاريخ والوقت. DateTime
أمثلة
مثال للاستخدام
SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A')┌─reinterpretAsDateTime(65)─┬─reinterpretAsDateTime('A')─┐
│ 1970-01-01 00:01:05 │ 1970-01-01 00:01:05 │
└───────────────────────────┴────────────────────────────┘reinterpretAsFixedString
تم تقديمه في: v1.1.0
يعيد تفسير قيمة الإدخال على أنها سلسلة ثابتة الطول (بافتراض ترتيب البايتات little endian). يُتجاهَل بايت NULL في النهاية، فعلى سبيل المثال، تُرجِع الدالة للقيمة 255 من النوع UInt32 سلسلةً تحتوي على محرف واحد.
البنية
reinterpretAsFixedString(x)الوسائط
القيمة المُعادة
سلسلة ثابتة تحتوي على البايتات التي تمثل x. FixedString
أمثلة
مثال على الاستخدام
-- The result is a sequence of bytes, so it is shown with `hex`.
SELECT
hex(reinterpretAsFixedString(toDateTime('1970-01-01 01:01:05'))),
hex(reinterpretAsFixedString(toDate('1970-03-07')))┌─hex(reinterpretAsFixedString(toDateTime('1970-01-01 01:01:05')))─┬─hex(reinterpretAsFixedString(toDate('1970-03-07')))─┐
│ 510E0000 │ 4100 │
└──────────────────────────────────────────────────────────────────┴─────────────────────────────────────────────────────┘reinterpretAsFloat32
أُضيف في: v1.1.0
يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Float32.
وعلى خلاف CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
reinterpretAsFloat32(x)الوسائط
x— القيمة المراد إعادة تفسيرها كـFloat32.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المعادة
تُرجع القيمة x بعد إعادة تفسيرها. Float32
أمثلة
مثال على الاستخدام
SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x)┌──────────x─┬─reinterpretAsFloat32(x)─┐
│ 1045220557 │ 0.2 │
└────────────┴─────────────────────────┘reinterpretAsFloat64
أُضيفت في: v1.1.0
تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Float64.
وعلى خلاف CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
reinterpretAsFloat64(x)الوسيطات
x— قيمة يُعاد تفسيرها كـ Float64.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تعيد القيمة x بعد إعادة تفسيرها. Float64
أمثلة
مثال على الاستخدام
SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x)┌───────────────────x─┬─reinterpretAsFloat64(x)─┐
│ 4596373779694328218 │ 0.2 │
└─────────────────────┴─────────────────────────┘reinterpretAsInt128
أُضيف في: v1.1.0
يُعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int128.
وبخلاف CAST، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ فإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
reinterpretAsInt128(x)المعاملات
x— القيمة المراد إعادة تفسيرها كـ Int128.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
يعيد القيمة x بعد إعادة تفسيرها. Int128
أمثلة
مثال على الاستخدام
SELECT
toInt64(257) AS x,
toTypeName(x),
reinterpretAsInt128(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int64 │ 257 │ Int128 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsInt16
أُضيفت في: v1.1.0
تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int16.
وعلى خلاف CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع المستهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
الصياغة
reinterpretAsInt16(x)المعاملات
x— القيمة المراد إعادة تفسيرها كـ Int16.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تُعيد القيمة x بعد إعادة تفسيرها. Int16
أمثلة
مثال على الاستخدام
SELECT
toInt8(257) AS x,
toTypeName(x),
reinterpretAsInt16(x) AS res,
toTypeName(res)┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ Int8 │ 1 │ Int16 │
└───┴───────────────┴─────┴─────────────────┘reinterpretAsInt256
قُدِّمت في: v1.1.0
يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Int256.
وعلى خلاف CAST، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون النتيجة غير معرّفة.
البنية
reinterpretAsInt256(x)الوسيطات
x— القيمة المراد إعادة تفسيرها كـ Int256.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تُرجِع القيمة x بعد إعادة تفسيرها. Int256
أمثلة
مثال على الاستخدام
SELECT
toInt128(257) AS x,
toTypeName(x),
reinterpretAsInt256(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int128 │ 257 │ Int256 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsInt32
قُدِّمت في: v1.1.0
تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int32.
وعلى خلاف CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
reinterpretAsInt32(x)الوسيطات
x— القيمة المراد إعادة تفسيرها إلى Int32.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تُرجع القيمة x بعد إعادة تفسيرها. Int32
أمثلة
مثال للاستخدام
SELECT
toInt16(257) AS x,
toTypeName(x),
reinterpretAsInt32(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int16 │ 257 │ Int32 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsInt64
تم تقديمه في: v1.1.0
يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int64.
وخلافًا لـ CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
reinterpretAsInt64(x)المعاملات
x— القيمة المراد إعادة تفسيرها كـ Int64.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تُرجِع القيمة x بعد إعادة تفسيرها. Int64
أمثلة
مثال على الاستخدام
SELECT
toInt32(257) AS x,
toTypeName(x),
reinterpretAsInt64(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int32 │ 257 │ Int64 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsInt8
أُضيف في: v1.1.0
يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Int8.
وعلى خلاف CAST، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
reinterpretAsInt8(x)الوسائط
x— القيمة المراد إعادة تفسيرها إلى Int8.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تُرجع القيمة x بعد إعادة تفسيرها. Int8
أمثلة
مثال على الاستخدام
SELECT
toUInt8(257) AS x,
toTypeName(x),
reinterpretAsInt8(x) AS res,
toTypeName(res)┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ UInt8 │ 1 │ Int8 │
└───┴───────────────┴─────┴─────────────────┘reinterpretAsString
ظهر في: v1.1.0
تعيد تفسير قيمة الإدخال كسلسلة نصية.
بالنسبة إلى القيم scalar، يُطبَّع ترتيب البايتات إلى little endian، ويتم تجاهل وحدات null byte الموجودة في النهاية. على سبيل المثال، تُرجِع الدالة للقيمة 255 من النوع UInt32 سلسلة نصية تحتوي على محرف واحد.
أما في حالة Array من عناصر ثابتة الحجم، فتُنسخ بايتات العناصر حرفيًا بترتيبها الأصلي داخل الذاكرة، من دون إزالة بايتات الصفر اللاحقة ومن دون التطبيع إلى little endian، بحيث يمكن إعادة تفسير النتيجة إلى نوع Array الأصلي على أي معمارية.
البنية
reinterpretAsString(x)الوسائط
القيمة المُعادة
سلسلة String تحتوي على بايتات تمثل x. String
أمثلة
مثال على الاستخدام
-- The result is a sequence of bytes, so it is shown with `hex`.
SELECT
hex(reinterpretAsString(toDateTime('1970-01-01 01:01:05'))),
hex(reinterpretAsString(toDate('1970-03-07')))┌─hex(reinterpretAsString(toDateTime('1970-01-01 01:01:05')))─┬─hex(reinterpretAsString(toDate('1970-03-07')))─┐
│ 510E │ 41 │
└─────────────────────────────────────────────────────────────┴────────────────────────────────────────────────┘مثال على تحويل Array إلى String
SELECT hex(reinterpretAsString([toUInt8(1), toUInt8(2), toUInt8(255)]::Array(UInt8))) AS array_of_UInt8_to_string┌─array_of_UInt8_to_string─┐
│ 0102FF │
└──────────────────────────┘reinterpretAsUInt128
أُضيفت في: v1.1.0
تعيد تفسير قيمة الإدخال على أنها قيمة من النوع UInt128.
وعلى خلاف CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
reinterpretAsUInt128(x)الوسائط
x— القيمة المراد إعادة تفسيرها كـ UInt128.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تُرجع القيمة x بعد إعادة تفسيرها. UInt128
أمثلة
مثال على الاستخدام
SELECT
toUInt64(257) AS x,
toTypeName(x),
reinterpretAsUInt128(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt64 │ 257 │ UInt128 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsUInt16
أُضيف في: v1.1.0
يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt16.
وعلى خلاف CAST، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
reinterpretAsUInt16(x)المعاملات
x— القيمة المطلوب إعادة تفسيرها كـ UInt16.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تُرجِع القيمة x بعد إعادة تفسيرها. UInt16
أمثلة
مثال على الاستخدام
SELECT
toUInt8(257) AS x,
toTypeName(x),
reinterpretAsUInt16(x) AS res,
toTypeName(res)┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ UInt8 │ 1 │ UInt16 │
└───┴───────────────┴─────┴─────────────────┘reinterpretAsUInt256
قُدِّم في: v1.1.0
يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt256.
وعلى خلاف CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
الصياغة
reinterpretAsUInt256(x)الوسيطات
x— القيمة المراد إعادة تفسيرها بصفتها UInt256.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
القيمة x بعد إعادة تفسيرها. UInt256
أمثلة
مثال على الاستخدام
SELECT
toUInt128(257) AS x,
toTypeName(x),
reinterpretAsUInt256(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt128 │ 257 │ UInt256 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsUInt32
قُدِّمت في: v1.1.0
يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt32.
وعلى خلاف CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، فستكون قيمة الإخراج غير معرّفة.
الصيغة
reinterpretAsUInt32(x)المعاملات
x— القيمة المراد إعادة تفسيرها على أنها UInt32.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المعادة
تعيد القيمة x بعد إعادة تفسيرها. UInt32
أمثلة
مثال للاستخدام
SELECT
toUInt16(257) AS x,
toTypeName(x),
reinterpretAsUInt32(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt16 │ 257 │ UInt32 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsUInt64
أُضيفت في: v1.1.0
تعيد هذه الدالة تفسير قيمة الإدخال على أنها قيمة من النوع UInt64.
وخلافًا لـ CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
الصيغة
reinterpretAsUInt64(x)الوسيطات
x— القيمة المراد إعادة تفسيرها كـ UInt64.Int*أوUInt*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المعادة
القيمة المُعاد تفسيرها لـ x. UInt64
أمثلة
مثال على الاستخدام
SELECT
toUInt32(257) AS x,
toTypeName(x),
reinterpretAsUInt64(x) AS res,
toTypeName(res)┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt32 │ 257 │ UInt64 │
└─────┴───────────────┴─────┴─────────────────┘reinterpretAsUInt8
أُضيف في: v1.1.0
يعيد تفسير قيمة الإدخال على أنها قيمة من النوع UInt8.
وعلى خلاف CAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون النتيجة غير معرّفة.
البنية
reinterpretAsUInt8(x)الوسائط
x— القيمة المطلوب إعادة تفسيرها باعتبارها UInt8.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
القيمة المُعادة
تُرجع القيمة x بعد إعادة تفسيرها. UInt8
أمثلة
مثال على الاستخدام
SELECT
toInt8(-1) AS val,
toTypeName(val),
reinterpretAsUInt8(val) AS res,
toTypeName(res);┌─val─┬─toTypeName(val)─┬─res─┬─toTypeName(res)─┐
│ -1 │ Int8 │ 255 │ UInt8 │
└─────┴─────────────────┴─────┴─────────────────┘reinterpretAsUUID
أُضيفت في: v1.1.0
تقبل سلسلة بطول 16 بايت وتُرجع UUID عبر تفسير كل نصف مكوّن من 8 بايتات بترتيب البايتات little-endian. وإذا لم يكن طول السلسلة كافيًا، فستعمل الدالة كما لو أُضيف إليها العدد اللازم من البايتات الصفرية في النهاية. وإذا كانت السلسلة أطول من 16 بايتًا، فسيتم تجاهل البايتات الزائدة في النهاية.
البنية
reinterpretAsUUID(fixed_string)الوسائط
fixed_string— سلسلة بايتات بترتيبbig-endian.FixedString
القيمة المُعادة
قيمة من النوع UUID. UUID
أمثلة
من String إلى UUID
SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f')))┌─reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f')))─┐
│ 08090a0b-0c0d-0e0f-0001-020304050607 │
└───────────────────────────────────────────────────────────────────────┘toBFloat16
أُضيف في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع BFloat16. ويُطلق استثناءً عند حدوث خطأ.
انظر أيضًا:
الصيغة
toBFloat16(expr)الوسائط
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
القيمة المُعادة
تُرجِع قيمة brain-float 16 بت. BFloat16
أمثلة
مثال على الاستخدام
SELECT
toBFloat16(toFloat32(42.7)),
toBFloat16(toFloat32('42.7')),
toBFloat16('42.7')
FORMAT Vertical;Row 1:
──────
toBFloat16(toFloat32(42.7)): 42.5
toBFloat16(toFloat32('42.7')): 42.5
toBFloat16('42.7'): 42.5toBFloat16OrNull
أُضيفت في: v1.1.0
تحوِّل قيمة إدخال من نوع String إلى قيمة من النوع BFloat16. إذا كانت السلسلة النصية لا تمثِّل قيمة عددية بفاصلة عائمة، فتعيد الدالة NULL.
الوسيطات المدعومة:
- التمثيلات النصية للقيم الرقمية.
الوسيطات غير المدعومة (تعيد NULL):
- التمثيلات النصية للقيم الثنائية والسداسية العشرية.
- القيم الرقمية.
انظر أيضًا:
البنية
toBFloat16OrNull(x)الوسيطات
x— تمثيل نصي لرقم.String
القيمة المُعادة
تعيد قيمة brain-float من 16 بت، وإلا NULL. BFloat16 أو NULL
أمثلة
مثال على الاستخدام
SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments
toBFloat16OrNull('12.3'), -- typical use
toBFloat16OrNull('12.3456789') -- silent loss of precision\N 12.25 12.3125toBFloat16OrZero
طُرح في: v1.1.0
يحوّل قيمة إدخال من نوع String إلى قيمة من النوع BFloat16. إذا لم تكن السلسلة النصية تمثل قيمة بفاصلة عائمة، فستُرجع الدالة صفرًا.
الوسيطات المدعومة:
- التمثيلات النصية للقيم الرقمية.
الوسيطات غير المدعومة (تُرجع 0):
- التمثيلات النصية للقيم الثنائية والسداسية العشرية.
- القيم الرقمية.
انظر أيضًا:
الصياغة
toBFloat16OrZero(x)الوسائط
x— تمثيل نصي لعدد.String
القيمة المعادة
تُرجع قيمة brain-float ذات 16 بت، وإلا فتُرجع 0. BFloat16
أمثلة
مثال على الاستخدام
SELECT toBFloat16OrZero('0x5E'), -- unsupported arguments
toBFloat16OrZero('12.3'), -- typical use
toBFloat16OrZero('12.3456789') -- silent loss of precision0 12.25 12.3125toBool
أُضيف في: v22.2.0
يحوّل قيمة الإدخال إلى قيمة من النوع Bool.
الصيغة
toBool(expr)الوسائط
expr— تعبير يُرجع رقمًا أو سلسلة نصية. بالنسبة إلى السلاسل النصية، يقبل 'true' أو 'false' (غير حساس لحالة الأحرف).(U)Int*أوFloat*أوStringأوExpression
القيمة المعادة
يُرجع true أو false بناءً على تقييم الوسيط. Bool
أمثلة
مثال على الاستخدام
SELECT
toBool(toUInt8(1)),
toBool(toInt8(-1)),
toBool(toFloat32(1.01)),
toBool('true'),
toBool('false'),
toBool('FALSE')
FORMAT VerticalRow 1:
──────
toBool(toUInt8(1)): true
toBool(toInt8(-1)): true
toBool(toFloat32(1.01)): true
toBool('true'): true
toBool('false'): false
toBool('FALSE'): falsetoDate
أُضيف في: v1.1.0
يحوّل قيمة مُدخلة إلى النوع Date.
يدعم التحويل من الأنواع String وFixedString وDateTime أو من الأنواع الرقمية.
البنية
toDate(x)المعاملات
x— قيمة الإدخال المطلوب تحويلها.StringأوFixedStringأوDateTimeأو(U)Int*أوFloat*
القيمة المُعادة
يعيد قيمة الإدخال بعد تحويلها. Date
أمثلة
تحويل String إلى Date
SELECT toDate('2025-04-15')2025-04-15تحويل DateTime إلى Date
SELECT toDate(toDateTime('2025-04-15 10:30:00'))2025-04-15تحويل العدد الصحيح إلى Date
SELECT toDate(20297)2025-07-28toDate32
أُضيف في: v21.9.0
يحوّل الوسيطة إلى نوع البيانات Date32.
إذا كانت القيمة خارج النطاق [0000-01-01, 9999-12-31]، فإن toDate32 يعيد القيم الحدّية التي يدعمها Date32.
إذا كانت الوسيطة من النوع Date، فتُؤخذ حدودها في الاعتبار.
البنية
toDate32(expr)وسيط
القيمة المعادة
يعيد تاريخًا تقويميًا. Date32
أمثلة
ضمن النطاق
SELECT toDate32('2025-01-01') AS value, toTypeName(value)
FORMAT VerticalRow 1:
──────
value: 2025-01-01
toTypeName(value): Date32قبل عام 1900
SELECT toDate32('1899-01-01') AS value, toTypeName(value)
FORMAT VerticalRow 1:
──────
value: 1899-01-01
toTypeName(value): Date32toDate32OrDefault
أُضيف في: v21.11.0
يحوِّل الوسيط إلى نوع البيانات Date32. إذا تعذّر تحويل الوسيط، بما في ذلك القيمة الرقمية الواقعة خارج نطاق Date32، فإن الدالة تُرجع قيمة افتراضية تكون إما الوسيط الثاني (إذا تم تحديده)، أو 1900-01-01 بخلاف ذلك، وهي القيمة الافتراضية التاريخية لـ Date32 (وليست حدها الأدنى، وهو 0000-01-01). وإذا كان الوسيط من النوع Date، فتُؤخذ حدوده في الاعتبار.
لاحظ أنه، بخلاف toDate32، لا تقيِّد هذه الدالة الوسيط الرقمي الواقع خارج النطاق ضمن حدود Date32؛ بل يُعامل هذا الوسيط على أنه غير قابل للتحويل.
البنية
toDate32OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل.Date32
القيمة المعادة
قيمة من النوع Date32 عند النجاح، وإلا فستُعاد القيمة الافتراضية إذا تم تمريرها، أو 1900-01-01 إذا لم يتم ذلك. Date32
أمثلة
تحويل ناجح
SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01'))1930-01-01تعذّر التحويل
SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01'))2020-01-01رقم خارج النطاق
SELECT toDate32OrDefault(toUInt64(18446744073709551615), toDate32('2020-01-01'))2020-01-01toDate32OrNull
أُضيف في: v21.9.0
يحوّل قيمة الإدخال إلى قيمة من النوع Date32، لكنه يعيد NULL إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ toDate32، لكنه يعيد NULL إذا كانت الوسيطة غير صالحة.
البنية
toDate32OrNull(x)الوسائط
x— تمثيل نصي لتاريخ.String
القيمة المُعادة
تعيد قيمة من النوع Date32 عند النجاح، وإلا NULL. Date32 أو NULL
أمثلة
مثال على الاستخدام
SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid')┌─toDate32OrNull('2025-01-01')─┬─toDate32OrNull('invalid')─┐
│ 2025-01-01 │ ᴺᵁᴸᴸ │
└──────────────────────────────┴───────────────────────────┘toDate32OrZero
أُضيف في: v21.9.0
يحوّل قيمة الإدخال إلى قيمة من النوع Date32، لكنه يعيد القيمة الافتراضية 1900-01-01 إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ toDate32، لكنه يعيد 1900-01-01 إذا كانت الوسيطة غير صالحة.
لاحظ أن 1900-01-01 قيمة افتراضية تاريخية للإدخال غير الصالح، وليست الحد الأدنى لـ Date32، وهو 0000-01-01.
انظر أيضًا:
الصيغة
toDate32OrZero(x)الوسيطات
x— تمثيل نصي لتاريخ.String
القيمة المُعادة
تُعيد قيمة Date32 عند النجاح، وإلا تُعيد القيمة الافتراضية التاريخية للإدخال غير الصالح (1900-01-01). Date32
أمثلة
مثال على الاستخدام
SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('')┌─toDate32OrZero('2025-01-01')─┬─toDate32OrZero('')─┐
│ 2025-01-01 │ 1900-01-01 │
└──────────────────────────────┴────────────────────┘toDateOrDefault
تم تقديمها في: v21.11.0
مثل toDate، ولكن إذا تعذّر ذلك، فتعيد قيمة افتراضية تكون إما الوسيطة الثانية (إذا كانت محددة)، أو الحد الأدنى لنوع Date بخلاف ذلك.
الصياغة
toDateOrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.Date
القيمة المعادة
قيمة من النوع Date عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا مُرِّرت، أو 1970-01-01 إذا لم تُمرَّر. Date
أمثلة
تحويل ناجح
SELECT toDateOrDefault('2022-12-30')2022-12-30فشل التحويل
SELECT toDateOrDefault('', CAST('2023-01-01', 'Date'))2023-01-01toDateOrNull
استُحدث في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Date، لكنه يعيد NULL إذا تلقّى وسيطة غير صالحة.
وهو مثل toDate، لكنه يعيد NULL إذا تلقّى وسيطة غير صالحة.
تُفسَّر الوسيطة الصحيحة بالطريقة نفسها المتّبعة في toDate (على أنها عدد الأيام منذ 1970-01-01 إذا لم تتجاوز 65535، وإلا فتُعد Unix timestamp)، وتُرجع NULL إذا كانت خارج نطاق النوع Date.
الصياغة
toDateOrNull(x)الوسائط
x— تمثيل نصي لتاريخ، أو عدد صحيح من الأيام، أو Unix timestamp.Stringأو(U)Int8/16/32/64
القيمة المُعادة
يُرجع قيمة من النوع Date عند النجاح، وإلا NULL. Date أو NULL
أمثلة
مثال على الاستخدام
SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid')┌─toDateOrNull('2025-12-30')─┬─toDateOrNull('invalid')─┐
│ 2025-12-30 │ ᴺᵁᴸᴸ │
└────────────────────────────┴─────────────────────────┘toDateOrZero
أُضيف في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Date، لكنه يعيد الحد الأدنى لـ Date عند تمرير وسيطة غير صالحة.
وهو مماثل لـ toDate، لكنه يعيد الحد الأدنى لـ Date عند تمرير وسيطة غير صالحة.
انظر أيضًا:
البنية
toDateOrZero(x)الوسائط
x— تمثيل نصي لتاريخ.String
القيمة المُعادة
يعيد قيمة من النوع Date عند النجاح، وإلا فيُعيد الحد الأدنى لـ Date (1970-01-01). Date
أمثلة
مثال على الاستخدام
SELECT toDateOrZero('2025-12-30'), toDateOrZero('')┌─toDateOrZero('2025-12-30')─┬─toDateOrZero('')─┐
│ 2025-12-30 │ 1970-01-01 │
└────────────────────────────┴──────────────────┘toDateTime
أُضيف في: v1.1.0
يحوّل قيمة مُدخلة إلى النوع DateTime.
الصياغة
toDateTime(expr[, time_zone])الوسيطات
القيمة المُعادة
يُرجع قيمة من نوع التاريخ والوقت. DateTime
أمثلة
مثال على الاستخدام
SELECT toDateTime('2025-01-01 00:00:00'), toDateTime(1735689600, 'UTC')
FORMAT VerticalRow 1:
──────
toDateTime('2025-01-01 00:00:00'): 2025-01-01 00:00:00
toDateTime(1735689600, 'UTC'): 2025-01-01 00:00:00toDateTime32
مُتاح منذ: v20.9.0
يحوّل قيمة الإدخال إلى النوع DateTime.
يدعم التحويل من String أو FixedString أو Date أو Date32 أو Time أو DateTime أو DateTime64 أو الأنواع الرقمية ((U)Int8 أو (U)Int16 أو (U)Int32 أو (U)Int64 أو BFloat16 أو Float32 أو Float64). لا تُدعم قيم Decimal وTime64 وتؤدي إلى استثناء؛ أما النوع Time وأنواع الأعداد الصحيحة العريضة، مثل (U)Int128/(U)Int256، فتلتف قيمها بدلاً من إشباعها.
DateTime32 اسم مستعار لـ DateTime ويدعم التواريخ من 1970-01-01 00:00:00 إلى 2106-02-07 06:28:15.
عند التحويل من سلسلة أو من أحد الأنواع الرقمية القابلة للإشباع المذكورة أعلاه، تُقيَّد القيم الواقعة خارج هذا النطاق بحدوده. لا يمكن تحويل قيم الفاصلة العائمة غير المنتهية (NaN وinf و-inf) وتؤدي إلى استثناء.
تتبع التحويلات من أنواع التاريخ والوقت الأخرى، مثل Date32 أو DateTime64، الإعداد date_time_overflow_behavior: فقد ينتج عن وضع ignore الافتراضي قيم ملتفة، بينما يقيّد saturate القيم بحدود النطاق، ويطرح throw استثناءً.
الصيغة
toDateTime32(x[, timezone])الوسيطات
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأو(U)Int*أوFloat*أوBFloat16أوDateأوDate32أوTimeأوDateTimeأوDateTime64timezone— اختياري. المنطقة الزمنية لقيمةDateTimeالمُعادة.String
القيمة المُعادة
تعيد قيمة الإدخال بعد تحويلها. DateTime
أمثلة
من سلسلة نصية
SELECT toDateTime32('2025-01-01 00:00:00') AS value, toTypeName(value);┌───────────────value─┬─toTypeName(value)─┐
│ 2025-01-01 00:00:00 │ DateTime │
└─────────────────────┴───────────────────┘من Unix timestamp
SELECT toDateTime32(1735689600, 'UTC') AS value, toTypeName(value);┌───────────────value─┬─toTypeName(value)─┐
│ 2025-01-01 00:00:00 │ DateTime('UTC') │
└─────────────────────┴───────────────────┘باستخدام منطقة زمنية
SELECT toDateTime32('2025-01-01 00:00:00', 'Asia/Istanbul') AS value, toTypeName(value);┌───────────────value─┬─toTypeName(value)─────────┐
│ 2025-01-01 00:00:00 │ DateTime('Asia/Istanbul') │
└─────────────────────┴───────────────────────────┘toDateTime64
أُضيف في: v20.1.0
يحوّل قيمة إدخال إلى قيمة من النوع DateTime64.
الصيغة
toDateTime64(expr, scale[, timezone])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرscale— مقدار النبضة (الدقة): 10^(-scale) ثانية.UInt8timezone— اختياري. المنطقة الزمنية لكائنDateTime64المحدد.String
القيمة المُعادة
يُرجع تاريخًا تقويميًا ووقتًا من اليوم، بدقة أجزاء من الثانية. DateTime64
أمثلة
القيمة ضمن النطاق
SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value);┌───────────────────value─┬─toTypeName(value)─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3) │
└─────────────────────────┴───────────────────┘بصيغة Decimal بدقة
SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value);
-- Without the decimal point the value is still treated as Unix Timestamp in seconds
SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value);┌───────────────────value─┬─toTypeName(value)─┐
│ 2019-01-01 00:00:00.000 │ DateTime64(3) │
└─────────────────────────┴───────────────────┘
┌───────────────────value─┬─toTypeName(value)─┐
│ 9999-12-31 23:59:59.000 │ DateTime64(3) │
└─────────────────────────┴───────────────────┘باستخدام المنطقة الزمنية
SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value);┌───────────────────value─┬─toTypeName(value)──────────────┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3, 'Asia/Istanbul') │
└─────────────────────────┴────────────────────────────────┘toDateTime64OrDefault
أُضيف في: v21.11.0
مثل toDateTime64، تُحوِّل هذه الدالة قيمة إدخال إلى قيمة من النوع DateTime64، لكنها تُرجع إما القيمة الافتراضية من DateTime64 أو القيمة الافتراضية المُعطاة إذا تم تمرير مُعامل غير صالح.
الصيغة
toDateTime64OrDefault(expr, scale[, timezone, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*scale— حجم الـ tick (الدقة): 10^-precision ثانية.UInt8timezone— اختياري. المنطقة الزمنية.Stringdefault— اختياري. القيمة الافتراضية التي ستُعاد إذا لم تنجح عملية التحليل.DateTime64
القيمة المعادة
قيمة من النوع DateTime64 عند النجاح، وإلا فستُعاد القيمة الافتراضية إذا تم تمريرها، أو 1970-01-01 00:00:00.000 إذا لم يتم ذلك. DateTime64
أمثلة
تحويل ناجح
SELECT toDateTime64OrDefault('1976-10-18 00:00:00.30', 3)1976-10-18 00:00:00.300تعذّر التحويل
SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2001-01-01 00:00:00.00',3))2001-01-01 00:00:00.000toDateTime64OrNull
استُحدثت في: v20.1.0
يحوّل قيمة إدخال إلى قيمة من النوع DateTime64، لكنه يعيد NULL إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ toDateTime64، لكنه يعيد NULL إذا كانت الوسيطة غير صالحة.
تُفسَّر الوسيطة الصحيحة على أنها Unix timestamp بالثواني الكاملة، وتنتج NULL إذا كانت خارج نطاق النوع DateTime64.
البنية
toDateTime64OrNull(x[, precision[, timezone]])الوسيطات
x— تمثيل نصي لتاريخ ووقت بدقة أجزاء الثانية، أو طابع زمني Unix صحيح.Stringأو(U)Int8/16/32/64precision— اختياري. دقة أجزاء الثانية للقيمة المُعادة.UInt8timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
القيمة المُعادة
يُرجِع قيمة DateTime64 عند النجاح، وإلا NULL. DateTime64 أو NULL
أمثلة
مثال على الاستخدام
SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invalid')┌─toDateTime64OrNull('2025-12-30 13:44:17.123')─┬─toDateTime64OrNull('invalid')─┐
│ 2025-12-30 13:44:17.123 │ ᴺᵁᴸᴸ │
└───────────────────────────────────────────────┴───────────────────────────────┘toDateTime64OrZero
أُضيفت في: v20.1.0
يحوِّل قيمة الإدخال إلى قيمة من النوع DateTime64، لكنه يعيد الحد الأدنى لـ DateTime64 إذا استلم وسيطة غير صالحة. وهو مماثل لـ toDateTime64، لكنه يعيد الحد الأدنى لـ DateTime64 إذا استلم وسيطة غير صالحة.
راجع أيضًا:
البنية
toDateTime64OrZero(x)الوسيطات
x— تمثيل نصي لتاريخ ووقت بدقة أجزاء من الثانية.String
القيمة المعادة
تعيد قيمة من النوع DateTime64 عند النجاح، وإلا فتعيد الحد الأدنى لـ DateTime64 (1970-01-01 00:00:00.000). DateTime64
أمثلة
مثال على الاستخدام
SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invalid')┌─toDateTime64OrZero('2025-12-30 13:44:17.123')─┬─toDateTime64OrZero('invalid')─┐
│ 2025-12-30 13:44:17.123 │ 1970-01-01 00:00:00.000 │
└───────────────────────────────────────────────┴───────────────────────────────┘toDateTimeOrDefault
تم تقديمه في: v21.11.0
مثل toDateTime، ولكن إذا تعذّر التحويل، فإنه يعيد قيمة افتراضية تكون إما الوسيطة الثالثة (إذا كانت محددة)، أو الحد الأدنى لنوع DateTime بخلاف ذلك.
البنية
toDateTimeOrDefault(expr[, timezone, default])الوسائط
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*timezone— اختياري. المنطقة الزمنية.Stringdefault— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.DateTime
القيمة المُعادة
قيمة من النوع DateTime عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 1970-01-01 00:00:00 إذا لم يتم تمريرها. DateTime
أمثلة
تحويل ناجح
SELECT toDateTimeOrDefault('2022-12-30 13:44:17')2022-12-30 13:44:17فشل التحويل
SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')'))2023-01-01 00:00:00toDateTimeOrNull
أُضيفت في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع DateTime، لكنه يُرجع NULL إذا تلقّى وسيطًا غير صالح.
وهو مماثل لـ toDateTime، لكنه يُرجع NULL إذا تلقّى وسيطًا غير صالح.
ويُفسَّر الوسيط الصحيح على أنه طابع زمني Unix، ويُنتج NULL إذا كان خارج نطاق النوع DateTime.
البنية
toDateTimeOrNull(x[, timezone])الوسيطات
x— تمثيل نصي لتاريخ ووقت، أو طابع زمني Unix صحيح.Stringأو(U)Int8/16/32/64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
القيمة المُعادة
تُرجع قيمة من نوع DateTime عند النجاح، وإلا NULL. DateTime أو NULL
أمثلة
مثال على الاستخدام
SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid')┌─toDateTimeOrNull('2025-12-30 13:44:17')─┬─toDateTimeOrNull('invalid')─┐
│ 2025-12-30 13:44:17 │ ᴺᵁᴸᴸ │
└─────────────────────────────────────────┴─────────────────────────────┘وسيط عدد صحيح مع منطقة زمنية
SELECT toDateTimeOrNull(1583851242, 'Asia/Shanghai'), toDateTimeOrNull(4294967296)┌─toDateTimeOrNull(1583851242, 'Asia/Shanghai')─┬─toDateTimeOrNull(4294967296)─┐
│ 2020-03-10 22:40:42 │ ᴺᵁᴸᴸ │
└───────────────────────────────────────────────┴──────────────────────────────┘toDateTimeOrZero
تم تقديمه في: v1.1.0
يحوّل قيمة مُدخلة إلى قيمة من النوع DateTime، لكنه يعيد الحد الأدنى لـ DateTime إذا كانت الوسيطة غير صالحة. وهو مماثل لـ toDateTime، لكنه يعيد الحد الأدنى لـ DateTime إذا كانت الوسيطة غير صالحة.
البنية
toDateTimeOrZero(x)الوسيطات
x— تمثيل نصي لتاريخ ووقت.String
القيمة المُعادة
يعيد قيمة من نوع DateTime عند النجاح، وإلا فيُعيد الحد الأدنى لنوع DateTime (1970-01-01 00:00:00). DateTime
أمثلة
مثال على الاستخدام
SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid')┌─toDateTimeOrZero('2025-12-30 13:44:17')─┬─toDateTimeOrZero('invalid')─┐
│ 2025-12-30 13:44:17 │ 1970-01-01 00:00:00 │
└─────────────────────────────────────────┴─────────────────────────────┘toDecimal128
أُضيفت في: v18.12.0
تحوّل قيمة إدخال إلى قيمة من النوع Decimal(38, S) بمقياس S.
يرفع استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
الوسيطات غير المدعومة:
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(دون حساسية لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toDecimal128('0xc0fe', 1);.
الصياغة
toDecimal128(expr, S)الوسيطات
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.ExpressionS— معامل المقياس بين 0 و38، ويُحدِّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من العدد.UInt8
القيمة المُعادة
تُرجع قيمة من النوع Decimal(38, S) Decimal128(S)
أمثلة
مثال على الاستخدام
SELECT
toDecimal128(99, 1) AS a, toTypeName(a) AS type_a,
toDecimal128(99.67, 2) AS b, toTypeName(b) AS type_b,
toDecimal128('99.67', 3) AS c, toTypeName(c) AS type_c
FORMAT VerticalRow 1:
──────
a: 99
type_a: Decimal(38, 1)
b: 99.67
type_b: Decimal(38, 2)
c: 99.67
type_c: Decimal(38, 3)toDecimal128OrDefault
تم تقديمه في: v21.11.0
مثل toDecimal128، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Decimal(38, S)، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
البنية
toDecimal128OrDefault(expr, S[, default])الوسيطات
expr— تمثيل نصي لرقم.StringS— معامل المقياس بين 0 و38، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل إلى النوع Decimal128(S).Decimal128(S)
القيمة المُعادة
قيمة من النوع Decimal(38, S) عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. Decimal128(S)
أمثلة
تحويل ناجح
SELECT toDecimal128OrDefault(toString(1/42), 18)0.023809523809523808تعذّر التحويل
SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)'))-1toDecimal128OrNull
أُضيف في: v20.1.0
يحوّل قيمة إدخال إلى قيمة من النوع Decimal(38, S)، لكنه يعيد NULL في حال حدوث خطأ.
وهو يشبه toDecimal128، لكنه يعيد NULL بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
الوسيطات غير المدعومة (تعيد NULL):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(غير حساسة لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية العشرية.
- القيم التي تتجاوز حدود
Decimal128:(-1*10^(38 - S), 1*10^(38 - S)).
انظر أيضًا:
البنية
toDecimal128OrNull(expr, S)الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و38، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
القيمة المعادة
يُرجع قيمة Decimal(38, S) عند النجاح، وإلا يُرجع NULL. Decimal128(S) أو NULL
أمثلة
مثال على الاستخدام
SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2)┌─toDecimal128OrNull('42.7', 2)─┬─toDecimal128OrNull('invalid', 2)─┐
│ 42.7 │ ᴺᵁᴸᴸ │
└───────────────────────────────┴──────────────────────────────────┘toDecimal128OrZero
تم تقديمه في: v20.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(38, S)، لكنه يعيد 0 في حال حدوث خطأ.
يشبه toDecimal128، لكنه يعيد 0 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسائط المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
الوسائط غير المدعومة (تعيد 0):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(دون حساسية لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والست عشرية.
البنية
toDecimal128OrZero(expr, S)الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و38، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
القيمة المُعادة
يُرجع قيمة Decimal(38, S) عند النجاح، وإلا 0. Decimal128(S)
أمثلة
الاستخدام الأساسي
SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2)┌─toDecimal128OrZero('42.7', 2)─┬─toDecimal128OrZero('invalid', 2)─┐
│ 42.7 │ 0 │
└───────────────────────────────┴──────────────────────────────────┘toDecimal256
طُرِحت في: v20.8.0
يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(76, S) ذات مقياس S. يطلق استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
الوسيطات غير المدعومة:
- القيم أو تمثيلاتها النصية لقيم Float*
NaNوInf(من دون حساسية لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toDecimal256('0xc0fe', 1);.
الصياغة
toDecimal256(expr, S)الوسيطات
expr— تعبير يُرجِع عددًا أو تمثيلًا نصيًا لعدد.تعبيرS— معامل المقياس بين 0 و76، ويحدّد عدد الأرقام التي يمكن أن يحتوي عليها الجزء الكسري من العدد.UInt8
القيمة المُعادة
يُرجِع قيمة من النوع Decimal(76, S). Decimal256(S)
أمثلة
مثال على الاستخدام
SELECT
toDecimal256(99, 1) AS a, toTypeName(a) AS type_a,
toDecimal256(99.67, 2) AS b, toTypeName(b) AS type_b,
toDecimal256('99.67', 3) AS c, toTypeName(c) AS type_c
FORMAT VerticalRow 1:
──────
a: 99
type_a: Decimal(76, 1)
b: 99.67
type_b: Decimal(76, 2)
c: 99.67
type_c: Decimal(76, 3)toDecimal256OrDefault
أُضيفت في: v21.11.0
مثل toDecimal256، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Decimal(76, S)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
الصيغة
toDecimal256OrDefault(expr, S[, default])الوسيطات
expr— تمثيل نصي لرقم.StringS— معامل المقياس بين 0 و76، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل إلى النوع Decimal256(S).Decimal256(S)
القيمة المُعادة
قيمة من النوع Decimal(76, S) عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. Decimal256(S)
أمثلة
تحويل ناجح
SELECT toDecimal256OrDefault(toString(1/42), 76)0.023809523809523808فشل التحويل
SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)'))-1toDecimal256OrNull
أُضيفت في: v20.8.0
تحوِّل قيمة الإدخال إلى قيمة من النوع Decimal(76, S)، لكنها تُرجع NULL في حال حدوث خطأ.
تشبه toDecimal256، لكنها تُرجع NULL بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسائط المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
الوسائط غير المدعومة (تُرجع NULL):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(بدون حساسية لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية العشرية.
- القيم التي تتجاوز حدود
Decimal256:(-1 * 10^(76 - S), 1 * 10^(76 - S)).
انظر أيضًا:
البنية
toDecimal256OrNull(expr, S)الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معلمة المقياس بين 0 و76، وتحدد عدد الخانات التي يمكن أن يتضمنها الجزء الكسري من الرقم.UInt8
القيمة المعادة
يُرجع قيمة من النوع Decimal(76, S) عند النجاح، وإلا NULL. Decimal256(S) أو NULL
أمثلة
مثال على الاستخدام
SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2)┌─toDecimal256OrNull('42.7', 2)─┬─toDecimal256OrNull('invalid', 2)─┐
│ 42.7 │ ᴺᵁᴸᴸ │
└───────────────────────────────┴──────────────────────────────────┘toDecimal256OrZero
أُضيف في: v20.8.0
يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(76, S)، لكنه يعيد 0 في حال حدوث خطأ.
يشبه toDecimal256، لكنه يعيد 0 بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
الوسيطات غير المدعومة (تعيد 0):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(غير حساسة لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية عشرية.
انظر أيضًا:
البنية
toDecimal256OrZero(expr, S)الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.ExpressionS— معامل المقياس بين 0 و76، ويحدّد عدد الخانات التي يمكن أن يتكوّن منها الجزء الكسري من الرقم.UInt8
القيمة المُعادة
يُرجع قيمة Decimal(76, S) عند النجاح، وإلا يُرجع 0. Decimal256(S)
أمثلة
مثال على الاستخدام
SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2)┌─toDecimal256OrZero('42.7', 2)─┬─toDecimal256OrZero('invalid', 2)─┐
│ 42.7 │ 0 │
└───────────────────────────────┴──────────────────────────────────┘toDecimal32
أُضيف في: v18.12.0
يحوّل قيمة إدخال إلى قيمة من النوع Decimal(9, S) ذات مقياس S. ويطلق استثناءً عند حدوث خطأ.
الوسائط المدعومة:
- قيم أو تمثيلات نصية من النوع (U)Int*.
- قيم أو تمثيلات نصية من النوع Float*.
الوسائط غير المدعومة:
- قيم أو تمثيلات نصية لقيم Float*
NaNوInf(من دون حساسية لحالة الأحرف). - تمثيلات نصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toDecimal32('0xc0fe', 1);.
الصيغة
toDecimal32(expr, S)الوسيطات
expr— تعبير يُرجع رقمًا أو سلسلة نصية تمثل رقمًا.تعبيرS— معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يتكوّن منها الجزء الكسري من الرقم.UInt8
القيمة المُعادة
يُرجع قيمة من النوع Decimal(9, S) Decimal32(S)
أمثلة
مثال على الاستخدام
SELECT
toDecimal32(2, 1) AS a, toTypeName(a) AS type_a,
toDecimal32(4.2, 2) AS b, toTypeName(b) AS type_b,
toDecimal32('4.2', 3) AS c, toTypeName(c) AS type_c
FORMAT VerticalRow 1:
──────
a: 2
type_a: Decimal(9, 1)
b: 4.2
type_b: Decimal(9, 2)
c: 4.2
type_c: Decimal(9, 3)toDecimal32OrDefault
قُدِّمت في: v21.11.0
مثل toDecimal32، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Decimal(9, S)، لكنها تُرجِع القيمة الافتراضية في حال حدوث خطأ.
البنية
toDecimal32OrDefault(expr, S[, default])الوسائط
expr— تمثيل نصي لرقم.StringS— معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8default— اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل إلى النوع Decimal32(S).Decimal32(S)
القيمة المُعادة
قيمة من النوع Decimal(9, S) عند نجاح العملية، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. Decimal32(S)
أمثلة
تحويل ناجح
SELECT toDecimal32OrDefault(toString(0.0001), 5)0.0001تعذّر التحويل
SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)'))-1toDecimal32OrNull
أُضيفت في: v20.1.0
تحوِّل قيمة مُدخلة إلى قيمة من النوع Decimal(9, S)، لكنها تُرجع NULL في حال حدوث خطأ.
تشبه toDecimal32، لكنها تُرجع NULL بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
الوسيطات غير المدعومة (تُرجع NULL):
- القيم أو تمثيلاتها النصية من قيم Float* وهي
NaNوInf(غير حساسة لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية العشرية.
- القيم التي تتجاوز حدود
Decimal32:(-1*10^(9 - S), 1*10^(9 - S)).
انظر أيضًا:
البنية
toDecimal32OrNull(expr, S)الوسائط
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و9، ويحدّد عدد الأرقام التي يمكن أن يحتويها الجزء الكسري من الرقم.UInt8
القيمة المعادة
يُرجع قيمة من النوع Decimal(9, S) عند النجاح، وإلا فيُرجع NULL. Decimal32(S) أو NULL
أمثلة
مثال على الاستخدام
SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2)┌─toDecimal32OrNull('42.7', 2)─┬─toDecimal32OrNull('invalid', 2)─┐
│ 42.7 │ ᴺᵁᴸᴸ │
└──────────────────────────────┴─────────────────────────────────┘toDecimal32OrZero
أُضيفت في: v20.1.0
تحوّل قيمة الإدخال إلى قيمة من النوع Decimal(9, S)، لكنها تُرجِع 0 في حال حدوث خطأ.
تشبه toDecimal32، لكنها تُرجِع 0 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسائط المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
الوسائط غير المدعومة (تُرجِع 0):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(دون مراعاة حالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية عشرية.
البنية
toDecimal32OrZero(expr, S)المعاملات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.ExpressionS— معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يحتويها الجزء الكسري من الرقم.UInt8
القيمة المُعادة
تُرجع قيمة Decimal(9, S) عند النجاح، وإلا تُرجع 0. Decimal32(S)
أمثلة
مثال على الاستخدام
SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2)┌─toDecimal32OrZero('42.7', 2)─┬─toDecimal32OrZero('invalid', 2)─┐
│ 42.7 │ 0 │
└──────────────────────────────┴─────────────────────────────────┘toDecimal64
أُضيف في: v18.12.0
يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(18, S) وبمقياس S.
يرفع استثناءً في حال حدوث خطأ.
الوسائط المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
الوسائط غير المدعومة:
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(غير حساسة لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والست عشرية، مثل
SELECT toDecimal64('0xc0fe', 1);.
البنية
toDecimal64(expr, S)الوسائط
expr— تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم.ExpressionS— معامل المقياس بين 0 و18، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
القيمة المُعادة
يُرجِع قيمة عشرية. Decimal(18, S)
أمثلة
مثال على الاستخدام
SELECT
toDecimal64(2, 1) AS a, toTypeName(a) AS type_a,
toDecimal64(4.2, 2) AS b, toTypeName(b) AS type_b,
toDecimal64('4.2', 3) AS c, toTypeName(c) AS type_c
FORMAT VerticalRow 1:
──────
a: 2
type_a: Decimal(18, 1)
b: 4.2
type_b: Decimal(18, 2)
c: 4.2
type_c: Decimal(18, 3)toDecimal64OrDefault
أُضيفت في: v21.11.0
مثل toDecimal64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Decimal(18, S)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
الصيغة
toDecimal64OrDefault(expr, S[, default])المعاملات
expr— تمثيل نصي لرقم.StringS— معامل المقياس بين 0 و18، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحويل إلى النوع Decimal64(S).Decimal64(S)
القيمة المُعادة
قيمة من النوع Decimal(18, S) عند نجاح العملية، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. Decimal64(S)
أمثلة
تحويل ناجح
SELECT toDecimal64OrDefault(toString(0.0001), 18)0.0001تعذّر التحويل
SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)'))-1toDecimal64OrNull
أُضيف في: v20.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(18, S)، لكنه يُرجع NULL عند حدوث خطأ.
وهو يشبه toDecimal64، لكنه يُرجع NULL بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسائط المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
الوسائط غير المدعومة (تُرجع NULL):
- القيم
NaNوInfمن النوع Float*، أو تمثيلاتها النصية (دون تمييز بين الأحرف الكبيرة والصغيرة). - التمثيلات النصية للقيم الثنائية والست عشرية.
- القيم التي تتجاوز حدود
Decimal64:(-1*10^(18 - S), 1*10^(18 - S)).
انظر أيضًا:
الصيغة
toDecimal64OrNull(expr, S)الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و18، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
القيمة المُعادة
تُرجع قيمة Decimal(18, S) عند النجاح، وإلا NULL. Decimal64(S) أو NULL
أمثلة
مثال على الاستخدام
SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2)┌─toDecimal64OrNull('42.7', 2)─┬─toDecimal64OrNull('invalid', 2)─┐
│ 42.7 │ ᴺᵁᴸᴸ │
└──────────────────────────────┴─────────────────────────────────┘toDecimal64OrZero
أُضيف في: v20.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(18, S)، لكنه يعيد 0 عند حدوث خطأ.
وهو يشبه toDecimal64، لكنه يعيد 0 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
الوسيطات غير المدعومة (تعيد 0):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(دون تمييز بين الأحرف الكبيرة والصغيرة). - التمثيلات النصية للقيم الثنائية والسداسية العشرية.
انظر أيضًا:
البنية
toDecimal64OrZero(expr, S)الوسائط
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و18، ويحدّد عدد الأرقام التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
القيمة المُعادة
يُرجع قيمة من النوع Decimal(18, S) عند النجاح، وإلا 0. Decimal64(S)
أمثلة
مثال على الاستخدام
SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2)┌─toDecimal64OrZero('42.7', 2)─┬─toDecimal64OrZero('invalid', 2)─┐
│ 42.7 │ 0 │
└──────────────────────────────┴─────────────────────────────────┘toDecimalString
أُضيفت في: v23.3.0
تحوّل قيمة رقمية إلى String بعدد محدد من الخانات الكسرية.
تقرّب الدالة قيمة الإدخال إلى العدد المحدد من المنازل العشرية. وإذا كانت قيمة الإدخال تحتوي على عدد من الخانات الكسرية أقل من المطلوب، فستُستكمل النتيجة بأصفار للوصول إلى العدد المحدد بدقة من الخانات الكسرية.
الصياغة
toDecimalString(number, scale)الوسيطات
number— القيمة العددية المراد تحويلها إلى سلسلة نصية. يمكن أن تكون من أي نوع عددي (Int أو UInt أو Float أو Decimal).Int8أوInt16أوInt32أوInt64أوUInt8أوUInt16أوUInt32أوUInt64أوFloat32أوFloat64أوDecimalscale— عدد الخانات التي ستُعرض في الجزء الكسري. ستُقرَّب النتيجة عند الحاجة.UInt8
القيمة المعادة
تعرض تمثيلًا نصيًا للعدد بعدد الخانات الكسرية المحدد تمامًا. String
أمثلة
تقريب عدد وتنسيقه
SELECT toDecimalString(2.1456, 2)┌─toDecimalString(2.1456, 2)─┐
│ 2.15 │
└────────────────────────────┘الحشو بالأصفار
SELECT toDecimalString(5, 3)┌─toDecimalString(5, 3)─┐
│ 5.000 │
└───────────────────────┘أنواع عددية مختلفة
SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val,
toDecimalString(CAST(42.7 AS Float32), 4) AS float_val┌─decimal_val─┬─float_val─┐
│ 123.46 │ 42.7000 │
└─────────────┴───────────┘toFixedString
قُدِّم في: v1.1.0
يحوّل وسيطًا من النوع String إلى النوع FixedString(N) (سلسلة نصية ذات طول ثابت مقداره N).
إذا كانت السلسلة النصية تحتوي على عدد بايتات أقل من N، فتُستكمل من اليمين ببايتات null. إذا كانت السلسلة النصية تحتوي على عدد بايتات أكبر من N، يُطرح استثناء.
البنية
toFixedString(s, N)المعاملات
s— السلسلة المطلوب تحويلها.StringN— طول قيمة FixedString الناتجة.const UInt*
القيمة المُعادة
تُرجع قيمة FixedString بطول N. FixedString(N)
أمثلة
مثال على الاستخدام
-- The padding is made of null bytes, so the result is shown with `hex`.
SELECT hex(toFixedString('foo', 8)) AS s;┌─s────────────────┐
│ 666F6F0000000000 │
└──────────────────┘toFloat32
أُضيف في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Float32. يطرح استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- قيم من النوع (U)Int*.
- التمثيلات النصية لـ (U)Int8/16/32/128/256.
- قيم من النوع Float*، بما في ذلك
NaNوInf. - التمثيلات النصية لـ Float*، بما في ذلك
NaNوInf(غير حسّاسة لحالة الأحرف).
الوسيطات غير المدعومة:
- التمثيلات النصية للقيم الثنائية والستّ عشرية، على سبيل المثال
SELECT toFloat32('0xc0fe');.
انظر أيضًا:
البنية
toFloat32(expr)المعاملات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
القيمة المُعادة
يُرجع قيمة عددية بفاصلة عائمة 32-بت. Float32
أمثلة
مثال للاستخدام
SELECT
toFloat32(42.7),
toFloat32('42.7'),
toFloat32('NaN')
FORMAT VerticalRow 1:
──────
toFloat32(42.7): 42.7
toFloat32('42.7'): 42.7
toFloat32('NaN'): nantoFloat32OrDefault
أُضيفت في: v21.11.0
على غرار toFloat32، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Float32، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فسيُرجع 0 عند حدوث خطأ.
الصيغة
toFloat32OrDefault(expr[, default])المعاملات
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي ستُعاد إذا لم ينجح التحليل.Float32
القيمة المعادة
تُرجع قيمة من النوع Float32 عند النجاح، وإلا فتُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. Float32
أمثلة
تحويل ناجح
SELECT toFloat32OrDefault('8', CAST('0', 'Float32'))8فشل التحويل
SELECT toFloat32OrDefault('abc', CAST('0', 'Float32'))0toFloat32OrNull
أُضيفت في: v1.1.0
تحوِّل قيمة الإدخال إلى قيمة من النوع Float32، لكنها تُرجع NULL في حال حدوث خطأ.
تشبه toFloat32، لكنها تُرجع NULL بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- قيم من النوع (U)Int*.
- تمثيلات نصية لـ (U)Int8/16/32/128/256.
- قيم من النوع Float*، بما في ذلك
NaNوInf. - تمثيلات نصية لـ Float*، بما في ذلك
NaNوInf(غير حساسة لحالة الأحرف).
الوسيطات غير المدعومة (تُرجع NULL):
- تمثيلات نصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toFloat32OrNull('0xc0fe');. - تنسيقات سلاسل نصية غير صالحة.
انظر أيضًا:
البنية
toFloat32OrNull(x)الوسيطات
x— تمثيل نصي لعدد.String
القيمة المُعادة
يعيد قيمة Float32 عند النجاح، وإلا NULL. Float32 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toFloat32OrNull('42.7'),
toFloat32OrNull('NaN'),
toFloat32OrNull('abc')
FORMAT VerticalRow 1:
──────
toFloat32OrNull('42.7'): 42.7
toFloat32OrNull('NaN'): nan
toFloat32OrNull('abc'): ᴺᵁᴸᴸtoFloat32OrZero
أُضيف في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Float32، ويُرجع 0 في حال حدوث خطأ.
يشبه toFloat32، لكنه يُرجع 0 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
انظر أيضًا:
الصيغة
toFloat32OrZero(x)الوسيطات
x— تمثيل نصي لعدد.String
القيمة المُعادة
يُرجع قيمة عائمة 32-بت عند النجاح، وإلا 0. Float32
أمثلة
مثال على الاستخدام
SELECT
toFloat32OrZero('42.7'),
toFloat32OrZero('abc')
FORMAT VerticalRow 1:
──────
toFloat32OrZero('42.7'): 42.7
toFloat32OrZero('abc'): 0toFloat64
أُضيف في: v1.1.0
يحوِّل قيمة إدخال إلى قيمة من النوع Float64.
يُطلق استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- قيم من النوع (U)Int*.
- التمثيلات النصية للقيم من النوع (U)Int8/16/32/128/256.
- قيم من النوع Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم من النوع Float*، بما في ذلك
NaNوInf(من دون حساسية لحالة الأحرف).
الوسيطات غير المدعومة:
- التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toFloat64('0xc0fe');.
انظر أيضًا:
البنية
toFloat64(expr)الوسيطات
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
القيمة المُعادة
تُرجع قيمة عددية بفاصلة عائمة بدقة 64 بت. Float64
أمثلة
مثال على الاستخدام
SELECT
toFloat64(42.7),
toFloat64('42.7'),
toFloat64('NaN')
FORMAT VerticalRow 1:
──────
toFloat64(42.7): 42.7
toFloat64('42.7'): 42.7
toFloat64('NaN'): nantoFloat64OrDefault
أُضيف في: v21.11.0
مثل toFloat64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Float64، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فسيتم إرجاع 0 عند حدوث خطأ.
الصياغة
toFloat64OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا لم تنجح عملية التحليل.Float64
القيمة المُعادة
يُرجع قيمة من النوع Float64 عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. Float64
أمثلة
تحويل ناجح
SELECT toFloat64OrDefault('8', CAST('0', 'Float64'))8تعذّر التحويل
SELECT toFloat64OrDefault('abc', CAST('0', 'Float64'))0toFloat64OrNull
أُضيف في: v1.1.0
يحوّل قيمة إدخال إلى قيمة من النوع Float64، لكنه يعيد NULL عند حدوث خطأ.
يشبه toFloat64، لكنه يعيد NULL بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- القيم من النوع (U)Int*.
- التمثيلات النصية لـ (U)Int8/16/32/128/256.
- القيم من النوع Float*، بما في ذلك
NaNوInf. - التمثيلات النصية من النوع Float*، بما في ذلك
NaNوInf(دون حساسية لحالة الأحرف).
الوسيطات غير المدعومة (تعيد NULL):
- التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toFloat64OrNull('0xc0fe');. - سلاسل نصية بتنسيق غير صالح.
انظر أيضًا:
الصياغة
toFloat64OrNull(x)الوسائط
x— تمثيل نصي لرقم.String
القيمة المُعادة
تُعيد قيمة من النوع Float64 عند النجاح، وإلا NULL. Float64 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toFloat64OrNull('42.7'),
toFloat64OrNull('NaN'),
toFloat64OrNull('abc')
FORMAT VerticalRow 1:
──────
toFloat64OrNull('42.7'): 42.7
toFloat64OrNull('NaN'): nan
toFloat64OrNull('abc'): ᴺᵁᴸᴸtoFloat64OrZero
أُضيف في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Float64، لكنه يعيد 0 في حال حدوث خطأ.
يشبه toFloat64، لكنه يعيد 0 بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.
انظر أيضًا:
البنية
toFloat64OrZero(x)الوسائط
x— تمثيل نصّي لرقم.String
القيمة المُعادة
يعيد قيمة Float64 عند النجاح، وإلا 0. Float64
أمثلة
مثال على الاستخدام
SELECT
toFloat64OrZero('42.7'),
toFloat64OrZero('abc')
FORMAT VerticalRow 1:
──────
toFloat64OrZero('42.7'): 42.7
toFloat64OrZero('abc'): 0toInt128
قُدِّم في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Int128. يطرح استثناءً عند حدوث خطأ. تستخدم الدالة التقريب نحو الصفر، أي إنها تحذف الأرقام الكسرية من الأعداد.
الوسيطات المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والقيم السداسية العشرية، مثل
SELECT toInt128('0xc0fe');.
انظر أيضًا:
الصيغة
toInt128(expr)الوسائط
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
القيمة المُعادة
يُرجع قيمة عدد صحيح من نوع 128 بت. Int128
أمثلة
مثال على الاستخدام
SELECT
toInt128(-128),
toInt128(-128.8),
toInt128('-128')
FORMAT VerticalRow 1:
──────
toInt128(-128): -128
toInt128(-128.8): -128
toInt128('-128'): -128toInt128OrDefault
أُضيف في: v21.11.0
مثل toInt128، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int128، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
البنية
toInt128OrDefault(expr[, default])المعاملات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُرجع إذا فشلت عملية التحليل.Int128
القيمة المُعادة
يُرجع قيمة من النوع Int128 عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم تُمرَّر. Int128
أمثلة
تحويل ناجح
SELECT toInt128OrDefault('-128', CAST('-1', 'Int128'))-128تعذّر التحويل
SELECT toInt128OrDefault('abc', CAST('-1', 'Int128'))-1toInt128OrNull
أُضيف في: v20.8.0
مثل toInt128، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int128، لكنها تُرجع NULL عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والست عشرية، على سبيل المثال
SELECT toInt128OrNull('0xc0fe');.
انظر أيضًا:
الصياغة
toInt128OrNull(x)الوسيطات
x— تمثيل نصي لرقم.String
القيمة المُعادة
تُرجِع قيمة من النوع Int128، أو NULL إذا تعذّر التحويل. Int128 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toInt128OrNull('-128'),
toInt128OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt128OrNull('-128'): -128
toInt128OrNull('abc'): ᴺᵁᴸᴸtoInt128OrZero
استُحدثت في: v20.8.0
يحوّل قيمة الإدخال إلى النوع Int128، لكنه يعيد 0 في حال حدوث خطأ.
وهو يشبه toInt128، لكنه يعيد 0 بدلًا من إطلاق استثناء.
انظر أيضًا:
البنية
toInt128OrZero(x)الوسيطات
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأوFloat*أوDecimalأو(U)Int*أوDateأوDateTime
القيمة المُعادة
تُعيد قيمة الإدخال بعد تحويلها، أو 0 إذا فشل التحويل. Int128
أمثلة
مثال على الاستخدام
SELECT toInt128OrZero('123')123تُرجِع عمليةُ التحويل عند الفشل صفرًا
SELECT toInt128OrZero('abc')0toInt16
أُضيفت في: v1.1.0
تحوّل قيمة الإدخال إلى قيمة من النوع Int16.
تُطلق استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt16('0xc0fe');.
انظر أيضًا:
الصياغة
toInt16(expr)الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
القيمة المُعادة
يُرجع قيمة عدد صحيح بطول 16 بت. Int16
أمثلة
مثال على الاستخدام
SELECT
toInt16(-16),
toInt16(-16.16),
toInt16('-16')
FORMAT VerticalRow 1:
──────
toInt16(-16): -16
toInt16(-16.16): -16
toInt16('-16'): -16toInt16OrDefault
أُضيفت في: v21.11.0
مثل toInt16، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int16، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجَع القيمة 0 عند حدوث خطأ.
البنية
toInt16OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.Int16
القيمة المُعادة
يُعيد قيمة من النوع Int16 عند النجاح، وإلا يُعيد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. Int16
أمثلة
تحويل ناجح
SELECT toInt16OrDefault('-16', CAST('-1', 'Int16'))-16فشل التحويل
SELECT toInt16OrDefault('abc', CAST('-1', 'Int16'))-1toInt16OrNull
قُدِّمت في: v1.1.0
مثل toInt16، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int16، لكنها تُعيد NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُعيد NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt16OrNull('0xc0fe');.
انظر أيضًا:
الصيغة
toInt16OrNull(x)الوسائط
x— تمثيل نصي لرقم.String
القيمة المُعادة
تعيد قيمة من النوع Int16، أو NULL إذا تعذر التحويل. Int16 أو NULL
أمثلة
مثال للاستخدام
SELECT
toInt16OrNull('-16'),
toInt16OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt16OrNull('-16'): -16
toInt16OrNull('abc'): ᴺᵁᴸᴸtoInt16OrZero
أُضيف في: v1.1.0
مثل toInt16، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int16، لكنها تُرجع 0 عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، على سبيل المثال
SELECT toInt16OrZero('0xc0fe');.
راجع أيضًا:
الصياغة
toInt16OrZero(x)المعاملات
x— تمثيل نصي لعدد.String
القيمة المُعادة
تُرجع قيمة من النوع Int16، أو 0 إذا تعذّر التحويل. Int16
أمثلة
مثال على الاستخدام
SELECT
toInt16OrZero('16'),
toInt16OrZero('abc')
FORMAT VerticalRow 1:
──────
toInt16OrZero('16'): 16
toInt16OrZero('abc'): 0toInt256
أُضيف في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع Int256. يُطلق استثناءً في حال حدوث خطأ. تستخدم الدالة التقريب نحو الصفر، ما يعني أنها تحذف الأرقام الكسرية من الأعداد.
الوسائط المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسائط غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt256('0xc0fe');.
انظر أيضًا:
البنية
toInt256(expr)الوسيطات
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
القيمة المعادة
يُرجع قيمة عدد صحيح من 256 بت. Int256
أمثلة
مثال على الاستخدام
SELECT
toInt256(-256),
toInt256(-256.256),
toInt256('-256')
FORMAT VerticalRow 1:
──────
toInt256(-256): -256
toInt256(-256.256): -256
toInt256('-256'): -256toInt256OrDefault
أُضيفت في: v21.11.0
مثل toInt256، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int256، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجِع 0 عند حدوث خطأ.
الصياغة
toInt256OrDefault(expr[, default])المعاملات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.Int256
القيمة المعادة
تُرجع قيمة من النوع Int256 عند النجاح، وإلا فتُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. Int256
أمثلة
تحويل ناجح
SELECT toInt256OrDefault('-256', CAST('-1', 'Int256'))-256تعذّر التحويل
SELECT toInt256OrDefault('abc', CAST('-1', 'Int256'))-1toInt256OrNull
تم تقديمها في: v20.8.0
مثل toInt256، تحوّل هذه الدالة قيمة إدخال إلى قيمة من النوع Int256، لكنها تعيد NULL عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تعيد NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toInt256OrNull('0xc0fe');.
راجع أيضًا:
البنية
toInt256OrNull(x)المعاملات
x— تمثيل نصي لرقم.String
القيمة المُعادة
تُعيد قيمة من النوع Int256، أو NULL إذا تعذّر التحويل. Int256 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toInt256OrNull('-256'),
toInt256OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt256OrNull('-256'): -256
toInt256OrNull('abc'): ᴺᵁᴸᴸtoInt256OrZero
استُحدث في: v20.8.0
يحوّل قيمة مُدخلة إلى النوع Int256، لكنه يعيد 0 في حال حدوث خطأ.
يشبه toInt256، لكنه يعيد 0 بدلًا من إثارة استثناء.
انظر أيضًا:
البنية
toInt256OrZero(x)الوسيطات
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأوFloat*أوDecimalأو(U)Int*أوDateأوDateTime
القيمة المُعادة
تُرجِع قيمة الإدخال بعد تحويلها، وإلا فتُرجِع 0 إذا فشل التحويل. Int256
أمثلة
مثال على الاستخدام
SELECT toInt256OrZero('123')123تُرجِع عملية التحويل الفاشلة صفراً
SELECT toInt256OrZero('abc')0toInt32
أُضيفت في: v1.1.0
تحوِّل قيمة إدخال إلى قيمة من النوع Int32.
تطرح استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والقيم السداسية عشرية، على سبيل المثال
SELECT toInt32('0xc0fe');.
انظر أيضًا:
الصياغة
toInt32(expr)الوسيطات
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.Expression
القيمة المُعادة
يُرجع قيمة عددٍ صحيحٍ مؤلفة من 32 بت. Int32
أمثلة
مثال للاستخدام
SELECT
toInt32(-32),
toInt32(-32.32),
toInt32('-32')
FORMAT VerticalRow 1:
──────
toInt32(-32): -32
toInt32(-32.32): -32
toInt32('-32'): -32toInt32OrDefault
قُدِّمت في: v21.11.0
مثل toInt32، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int32، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجِع 0 عند حدوث خطأ.
البنية
toInt32OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُرجع إذا فشل التحليل.Int32
القيمة المُعادة
يُرجع قيمة من النوع Int32 عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. Int32
أمثلة
تحويل ناجح
SELECT toInt32OrDefault('-32', CAST('-1', 'Int32'))-32تعذّر التحويل
SELECT toInt32OrDefault('abc', CAST('-1', 'Int32'))-1toInt32OrNull
طُرحت في: v1.1.0
مثل toInt32، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int32، لكنها تُرجع NULL عند حدوث خطأ.
الوسائط المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسائط غير المدعومة (تُرجع NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toInt32OrNull('0xc0fe');.
انظر أيضًا:
الصياغة
toInt32OrNull(x)الوسيطات
x— تمثيل نصي لرقم.String
القيمة المُعادة
يعيد قيمة من النوع Int32، أو NULL إذا تعذّر التحويل. Int32 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toInt32OrNull('-32'),
toInt32OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt32OrNull('-32'): -32
toInt32OrNull('abc'): ᴺᵁᴸᴸtoInt32OrZero
أُضيف في: v1.1.0
على غرار toInt32، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int32، لكنها تُرجع 0 عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toInt32OrZero('0xc0fe');.
انظر أيضًا:
البنية
toInt32OrZero(x)المعاملات
x— تمثيل نصي لرقم.String
القيمة المُعادة
تُرجع قيمة من النوع Int32، وإلا فستُرجع 0 إذا تعذّر التحويل. Int32
أمثلة
مثال على الاستخدام
SELECT
toInt32OrZero('32'),
toInt32OrZero('abc')
FORMAT VerticalRow 1:
──────
toInt32OrZero('32'): 32
toInt32OrZero('abc'): 0toInt64
أُضيف في: v1.1.0
يحوّل قيمة إدخال إلى قيمة من النوع Int64.
يطرح استثناءً في حال حدوث خطأ.
الوسائط المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسائط غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt64('0xc0fe');.
انظر أيضًا:
البنية
toInt64(expr)الوسائط
expr— تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم. المدعوم: القيم أو التمثيلات النصية من النوع (U)Int*، والقيم من النوع Float*. غير المدعوم: التمثيلات النصية لقيم Float*، بما في ذلك NaN وInf، والتمثيلات النصية للقيم الثنائية والسداسية العشرية.تعبير
القيمة المُعادة
تُرجِع قيمة عدد صحيح من 64 بت. Int64
أمثلة
مثال على الاستخدام
SELECT
toInt64(-64),
toInt64(-64.64),
toInt64('-64')
FORMAT VerticalRow 1:
──────
toInt64(-64): -64
toInt64(-64.64): -64
toInt64('-64'): -64toInt64OrDefault
أُضيف في: v21.11.0
مثل toInt64، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int64، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
البنية
toInt64OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.Int64
القيمة المُعادة
تُعاد قيمة من النوع Int64 عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إن لم يتم ذلك. Int64
أمثلة
تحويل ناجح
SELECT toInt64OrDefault('-64', CAST('-1', 'Int64'))-64فشل التحويل
SELECT toInt64OrDefault('abc', CAST('-1', 'Int64'))-1toInt64OrNull
أُضيف في: v1.1.0
مثل toInt64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int64، لكنها تعيد NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تعيد NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt64OrNull('0xc0fe');.
انظر أيضًا:
البنية
toInt64OrNull(x)الوسيطات
x— تمثيل نصي لعدد.String
القيمة المُعادة
يعيد قيمة من النوع Int64، أو NULL إذا تعذر التحويل. Int64 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toInt64OrNull('-64'),
toInt64OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt64OrNull('-64'): -64
toInt64OrNull('abc'): ᴺᵁᴸᴸtoInt64OrZero
قُدِّم في: v1.1.0
يحوّل قيمة إدخال إلى النوع Int64، لكنه يعيد 0 في حال حدوث خطأ.
يشبه toInt64، لكنه يعيد 0 بدلًا من إطلاق استثناء.
انظر أيضًا:
الصياغة
toInt64OrZero(x)الوسائط
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأوFloat*أوDecimalأو(U)Int*أوDateأوDateTime
القيمة المُعادة
تُعيد قيمة الإدخال بعد تحويلها، أو 0 إذا فشل التحويل. Int64
أمثلة
مثال على الاستخدام
SELECT toInt64OrZero('123')123يعيد التحويل الفاشل صفراً
SELECT toInt64OrZero('abc')0toInt8
أُضيفت في: v1.1.0
تحوّل قيمة الإدخال إلى قيمة من النوع Int8.
تُطلق استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt8('0xc0fe');.
انظر أيضًا:
البنية
toInt8(expr)المعاملات
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
القيمة المُعادة
يعيد قيمة عدد صحيح من 8 بتات. Int8
أمثلة
مثال على الاستخدام
SELECT
toInt8(-8),
toInt8(-8.8),
toInt8('-8')
FORMAT VerticalRow 1:
──────
toInt8(-8): -8
toInt8(-8.8): -8
toInt8('-8'): -8toInt8OrDefault
أُضيف في: v21.11.0
مثل toInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int8، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
الصيغة
toInt8OrDefault(expr[, default])الوسيطات
expr—expressionيُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا لم تنجح عملية التحليل.Int8
القيمة المعادة
تُعاد قيمة من النوع Int8 عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. Int8
أمثلة
تحويل ناجح
SELECT toInt8OrDefault('-8', CAST('-1', 'Int8'))-8فشل التحويل
SELECT toInt8OrDefault('abc', CAST('-1', 'Int8'))-1toInt8OrNull
أُضيف في: v1.1.0
مثل toInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int8، لكنها تُرجع NULL عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل
SELECT toInt8OrNull('0xc0fe');.
انظر أيضًا:
البنية
toInt8OrNull(x)الوسائط
x— تمثيل نصي لرقم.String
القيمة المُعادة
تعيد قيمة من النوع Int8، أو NULL إذا تعذّر التحويل. Int8 أو NULL
أمثلة
مثال للاستخدام
SELECT
toInt8OrNull('-8'),
toInt8OrNull('abc')
FORMAT VerticalRow 1:
──────
toInt8OrNull('-8'): -8
toInt8OrNull('abc'): ᴺᵁᴸᴸtoInt8OrZero
أُضيف في: v1.1.0
مثل toInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int8، لكنها تعيد 0 عند حدوث خطأ.
الوسائط المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسائط غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt8OrZero('0xc0fe');.
انظر أيضًا:
البنية
toInt8OrZero(x)المعاملات
x— تمثيل نصي لرقم.String
القيمة المُعادة
يعيد قيمة من النوع Int8، وإلا فيُعيد 0 إذا لم ينجح التحويل. Int8
أمثلة
مثال على الاستخدام
SELECT
toInt8OrZero('8'),
toInt8OrZero('abc')
FORMAT VerticalRow 1:
──────
toInt8OrZero('8'): 8
toInt8OrZero('abc'): 0toInterval
أُضيفت في: v25.4.0
تنشئ قيمة Interval من قيمة رقمية وسلسلة نصية للوحدة.
توفّر هذه الدالة طريقة موحّدة لإنشاء فترات زمنية من أنواع مختلفة (ثوانٍ، دقائق، ساعات، أيام، أسابيع، أشهر، أرباع سنوية، سنوات) باستخدام دالة واحدة فقط، وذلك عبر تحديد الوحدة كسلسلة نصية. سلسلة الوحدة غير حساسة لحالة الأحرف.
وهذا يكافئ استدعاء دوال مخصّصة لكل نوع مثل toIntervalSecond وtoIntervalMinute وtoIntervalDay وغيرها،
لكنه يتيح تحديد الوحدة ديناميكيًا بوصفها معامل String.
الصياغة
toInterval(value, unit)الوسائط
value— القيمة الرقمية التي تمثل عدد الوحدات. يمكن أن تكون من أي نوع رقمي.Int8أوInt16أوInt32أوInt64أوUInt8أوUInt16أوUInt32أوUInt64أوFloat32أوFloat64unit— وحدة الزمن. يجب أن تكون سلسلة نصية ثابتة. القيم الصالحة هي: 'nanosecond' و'microsecond' و'millisecond' و'second' و'minute' و'hour' و'day' و'week' و'month' و'quarter' و'year'.String
القيمة المُعادة
تُرجع قيمة Interval من النوع المحدد. يعتمد نوع النتيجة على الوحدة: IntervalNanosecond أو IntervalMicrosecond أو IntervalMillisecond أو IntervalSecond أو IntervalMinute أو IntervalHour أو IntervalDay أو IntervalWeek أو IntervalMonth أو IntervalQuarter أو IntervalYear. Interval
أمثلة
إنشاء قيم Interval بوحدات مختلفة
SELECT
toInterval(5, 'second') AS seconds,
toInterval(3, 'day') AS days,
toInterval(2, 'month') AS months┌─seconds─┬─days─┬─months─┐
│ 5 │ 3 │ 2 │
└─────────┴──────┴────────┘استخدم الفترات في العمليات الحسابية على التواريخ
SELECT
now() AS current_time,
now() + toInterval(1, 'hour') AS one_hour_later,
now() - toInterval(7, 'day') AS week_ago┌─────────current_time─┬──one_hour_later─────┬────────────week_ago─┐
│ 2025-01-04 10:30:00 │ 2025-01-04 11:30:00 │ 2024-12-28 10:30:00 │
└──────────────────────┴─────────────────────┴─────────────────────┘إنشاء الفاصل الزمني ديناميكيًا
SELECT toDate('2025-01-01') + toInterval(number, 'day') AS dates
FROM numbers(5)┌──────dates─┐
│ 2025-01-01 │
│ 2025-01-02 │
│ 2025-01-03 │
│ 2025-01-04 │
│ 2025-01-05 │
└────────────┘toIntervalDay
أُضيف في: v1.1.0
يُرجع فاصلًا زمنيًا من n يومًا من نوع البيانات IntervalDay.
الصياغة
toIntervalDay(n)الوسيطات
n— عدد الأيام. الأعداد الصحيحة أو تمثيلاتها النصية، وكذلك الأعداد العائمة.(U)Int*أوFloat*أوString
القيمة المعادة
تُرجع فترة زمنية من n أيام. Interval
أمثلة
مثال على الاستخدام
WITH
toDate('2025-06-15') AS date,
toIntervalDay(5) AS interval_to_days
SELECT date + interval_to_days AS result┌─────result─┐
│ 2025-06-20 │
└────────────┘toIntervalHour
أُضيف في: v1.1.0
يعيد interval مقداره n ساعة من نوع البيانات IntervalHour.
الصياغة
toIntervalHour(n)المعاملات
القيمة المُعادة
يعيد فاصلًا زمنيًا مقداره n ساعة. Interval
أمثلة
مثال على الاستخدام
WITH
toDate('2025-06-15') AS date,
toIntervalHour(12) AS interval_to_hours
SELECT date + interval_to_hours AS result┌──────────────result─┐
│ 2025-06-15 12:00:00 │
└─────────────────────┘toIntervalMicrosecond
قُدِّم في: v22.6.0
يُرجع فاصلًا زمنيًا مقداره n ميكروثانية من نوع البيانات IntervalMicrosecond.
الصياغة
toIntervalMicrosecond(n)الوسيطات
القيمة المعادة
تعيد قيمة Interval مقدارها n ميكروثانية. Interval
أمثلة
مثال على الاستخدام
WITH
toDateTime('2025-06-15') AS date,
toIntervalMicrosecond(30) AS interval_to_microseconds
SELECT date + interval_to_microseconds AS result┌─────────────────────result─┐
│ 2025-06-15 00:00:00.000030 │
└────────────────────────────┘toIntervalMillisecond
تم تقديمه في: v22.6.0
يعيد فاصلًا زمنيًا مقداره n مللي ثانية من نوع البيانات IntervalMillisecond.
البنية
toIntervalMillisecond(n)المعاملات
القيمة المُعادة
يُرجِع فترة زمنية مقدارها n مللي ثانية. Interval
أمثلة
مثال على الاستخدام
WITH
toDateTime('2025-06-15') AS date,
toIntervalMillisecond(30) AS interval_to_milliseconds
SELECT date + interval_to_milliseconds AS result┌──────────────────result─┐
│ 2025-06-15 00:00:00.030 │
└─────────────────────────┘toIntervalMinute
أُضيفت في: v1.1.0
تعيد فاصلًا زمنيًا مقداره n دقيقة من نوع البيانات IntervalMinute.
البنية
toIntervalMinute(n)المعاملات
القيمة المُعادة
يُرجع فاصلًا زمنيًا مقداره n دقيقة. Interval
أمثلة
مثال للاستخدام
WITH
toDate('2025-06-15') AS date,
toIntervalMinute(12) AS interval_to_minutes
SELECT date + interval_to_minutes AS result┌──────────────result─┐
│ 2025-06-15 00:12:00 │
└─────────────────────┘toIntervalMonth
أُضيف في: v1.1.0
يعيد فاصلًا زمنيًا مقداره n شهرًا من نوع البيانات IntervalMonth.
البنية
toIntervalMonth(n)الوسيطات
القيمة المُعادة
تُرجِع فترةً مقدارها n شهرًا. Interval
أمثلة
مثال استخدام
WITH
toDate('2025-06-15') AS date,
toIntervalMonth(1) AS interval_to_month
SELECT date + interval_to_month AS result┌─────result─┐
│ 2025-07-15 │
└────────────┘toIntervalNanosecond
قُدِّم في: v22.6.0
يعيد فاصلًا زمنيًا مقداره n نانوثانية من نوع البيانات IntervalNanosecond.
الصياغة
toIntervalNanosecond(n)الوسيطات
القيمة المُعادة
تُرجِع فاصلًا زمنيًا مقداره n نانوثانية. Interval
أمثلة
مثال استخدام
WITH
toDateTime('2025-06-15') AS date,
toIntervalNanosecond(30) AS interval_to_nanoseconds
SELECT date + interval_to_nanoseconds AS result┌────────────────────────result─┐
│ 2025-06-15 00:00:00.000000030 │
└───────────────────────────────┘toIntervalQuarter
قُدِّمت في: v1.1.0
تعيد فاصلًا زمنيًا من n أرباع من نوع البيانات IntervalQuarter.
الصياغة
toIntervalQuarter(n)الوسيطات
القيمة المعادة
يُرجع فاصلًا زمنيًا مقداره n من أرباع السنة. Interval
أمثلة
مثال على الاستخدام
WITH
toDate('2025-06-15') AS date,
toIntervalQuarter(1) AS interval_to_quarter
SELECT date + interval_to_quarter AS result┌─────result─┐
│ 2025-09-15 │
└────────────┘toIntervalSecond
استُحدثت في: v1.1.0
تعيد قيمة interval من n ثانية، من نوع البيانات IntervalSecond.
البنية
toIntervalSecond(n)الوسيطات
n— عدد الثواني. الأعداد الصحيحة أو تمثيلاتها النصية، والأعداد ذات الفاصلة العائمة.(U)Int*أوFloat*أوString
القيمة المُعادة
يُرجِع فاصلًا زمنيًا مقداره n ثانية. Interval
أمثلة
مثال على الاستخدام
WITH
toDate('2025-06-15') AS date,
toIntervalSecond(30) AS interval_to_seconds
SELECT date + interval_to_seconds AS result┌──────────────result─┐
│ 2025-06-15 00:00:30 │
└─────────────────────┘toIntervalWeek
أُضيفت في: v1.1.0
تعيد فاصلًا زمنيًا مقداره n أسبوعًا من نوع البيانات IntervalWeek.
الصياغة
toIntervalWeek(n)المعاملات
القيمة المُعادة
يعيد فترة n أسابيع. Interval
أمثلة
مثال على الاستخدام
WITH
toDate('2025-06-15') AS date,
toIntervalWeek(1) AS interval_to_week
SELECT date + interval_to_week AS result┌─────result─┐
│ 2025-06-22 │
└────────────┘toIntervalYear
أُضيف في: v1.1.0
يعيد interval من n سنة من نوع البيانات IntervalYear.
الصيغة
toIntervalYear(n)المعاملات
القيمة المُعادة
تعيد فاصلًا زمنيًا مقداره n سنة. Interval
أمثلة
مثال على الاستخدام
WITH
toDate('2024-06-15') AS date,
toIntervalYear(1) AS interval_to_year
SELECT date + interval_to_year AS result┌─────result─┐
│ 2025-06-15 │
└────────────┘toLowCardinality
قُدِّم في: v18.12.0
يحوّل وسيط الإدخال إلى إصدار LowCardinality من نوع البيانات نفسه.
البنية
toLowCardinality(expr)الوسائط
expr— تعبير ينتج أحد أنواع البيانات المدعومة.StringأوFixedStringأوDateأوDateTimeأو(U)Int*أوFloat*
القيمة المُعادة
يعيد قيمة الإدخال بعد تحويلها إلى نوع البيانات LowCardinality. LowCardinality
أمثلة
مثال على الاستخدام
SELECT toLowCardinality('1')┌─toLowCardinality('1')─┐
│ 1 │
└───────────────────────┘toString
قُدِّمت في: v1.1.0
تحوِّل القيم إلى تمثيلها النصي. وبالنسبة إلى وسيطات DateTime، يمكن أن تأخذ الدالة وسيطة String ثانية تحتوي على اسم المنطقة الزمنية.
البنية
toString(value[, timezone])الوسائط
value— القيمة المراد تحويلها إلى سلسلة نصية.Anytimezone— اختياري. اسم المنطقة الزمنية لتحويل DateTime.String
القيمة المُعادة
تعيد تمثيلًا نصيًا لقيمة الإدخال. String
أمثلة
مثال على الاستخدام
SELECT
now() AS ts,
time_zone,
toString(ts, time_zone) AS str_tz_datetime
FROM system.time_zones
WHERE time_zone LIKE 'Europe%'
LIMIT 10┌──────────────────ts─┬─time_zone─────────┬─str_tz_datetime─────┐
│ 2023-09-08 19:14:59 │ Europe/Amsterdam │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Andorra │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Astrakhan │ 2023-09-08 23:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Athens │ 2023-09-08 22:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belfast │ 2023-09-08 20:14:59 │
└─────────────────────┴───────────────────┴─────────────────────┘toStringCutToZero
أُضيفت في: v1.1.0
تقبل argument من النوع String أو FixedString، وتُرجع قيمة من النوع String تحتوي على نسخة من السلسلة الأصلية مقصوصة عند أول بايت صفري.
تُعد البايتات الصفرية (\0) بمثابة مُنهِيات للسلاسل.
تكون هذه الدالة مفيدة لمعالجة السلاسل بأسلوب C أو البيانات الثنائية، حيث تشير البايتات الصفرية إلى نهاية المحتوى المفيد.
الصياغة
toStringCutToZero(s)الوسائط
s— قيمة من النوع String أو FixedString المراد معالجتها.StringأوFixedString
القيمة المُعادة
تُرجع String تحتوي على الأحرف التي تسبق أول بايت صفري. String
أمثلة
مثال على الاستخدام
SELECT
toStringCutToZero('hello'),
toStringCutToZero('hello\0world')┌─toStringCutToZero('hello')─┬─toStringCutToZero('hello\0world')─┐
│ hello │ hello │
└────────────────────────────┴───────────────────────────────────┘toTime
أُضيف في: v25.5.0
يحوّل قيمة الإدخال إلى النوع Time.
يدعم التحويل من String وFixedString وDateTime وDateTime64 أو من الأنواع الرقمية التي تمثل عدد الثواني منذ منتصف الليل.
تُقيَّد القيم الرقمية الواقعة خارج نطاق النوع (-999:59:59 إلى 999:59:59، أي -3599999 إلى 3599999 ثانية) بحدود النطاق، ولا يمكن تحويل قيم الفاصلة العائمة غير المنتهية (NaN وinf و-inf) وينتج عن ذلك استثناء.
البنية
toTime(x)الوسيطات
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأوDateTimeأوDateTime64أو(U)Int*أوBFloat16أوFloat*
القيمة المعادة
تُرجِع القيمة المُحوَّلة. Time
أمثلة
التحويل من DateTime64 إلى Time
SET enable_time_time64_type = 1;
SET use_legacy_to_time = 0;
SELECT toTime(toDateTime64('2025-04-15 14:30:25.123', 3))14:30:25التحويل من DateTime إلى Time
SET enable_time_time64_type = 1;
SET use_legacy_to_time = 0;
SELECT toTime(toDateTime('2025-04-15 14:30:25'))14:30:25تحويل الأعداد الصحيحة (بالثواني منذ epoch) إلى Time
SET enable_time_time64_type = 1;
SET use_legacy_to_time = 0;
SELECT toTime(toDateTime(52225, 'UTC'))14:30:25toTime64
أُضيف في: v25.6.0
يحوّل قيمة الإدخال إلى النوع Time64.
يدعم التحويل من String وFixedString وDateTime64 أو من الأنواع الرقمية التي تمثل الثواني منذ منتصف الليل.
يوفّر دقة أقل من الثانية لقيم الوقت، حتى scale من الخانات الكسرية.
الصياغة
toTime64(x, scale)الوسيطات
x— قيمة الإدخال المطلوب تحويلها.StringأوFixedStringأوDateTime64أو(U)Int*أوFloat*scale— الدقة (عدد الخانات الكسرية، من0إلى9) في قيمةTime64الناتجة.(U)Int*
القيمة المعادة
تُرجِع القيمة المحوَّلة بالدقة scale المطلوبة. Time64
أمثلة
تحويل String إلى Time64
SET enable_time_time64_type = 1;
SELECT toTime64('14:30:25.123456', 6)14:30:25.123456تحويل DateTime64 إلى Time64
SET enable_time_time64_type = 1;
SELECT toTime64(toDateTime64('2025-04-15 14:30:25.123456', 6), 6)14:30:25.123456تحويل Float (عدد الثواني منذ منتصف الليل) إلى Time64
SET enable_time_time64_type = 1;
SELECT toTime64(52225.123456, 6)14:30:25.123456toTime64OrNull
قُدِّم في: v25.6.0
يحوّل قيمة الإدخال إلى قيمة من النوع Time64، ولكنه يعيد NULL في حال حدوث خطأ.
يشبه toTime64، لكنه يعيد NULL بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
انظر أيضًا:
البنية
toTime64OrNull(x)الوسيطات
x— تمثيل نصي لوقت بدقة أقل من الثانية.String
القيمة المُعادة
تعيد قيمة من النوع Time64 عند النجاح، وإلا NULL. Time64 أو NULL
أمثلة
مثال للاستخدام
SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid')┌─toTime64OrNull('12:30:45.123')─┬─toTime64OrNull('invalid')─┐
│ 12:30:45.123 │ ᴺᵁᴸᴸ │
└────────────────────────────────┴───────────────────────────┘toTime64OrZero
استُحدثت في: v25.6.0
يحوِّل قيمة الإدخال إلى قيمة من النوع Time64، لكنه يُرجع 00:00:00.000 في حال حدوث خطأ.
يشبه toTime64، لكنه يُرجع 00:00:00.000 بدلًا من طرح استثناء عند حدوث أخطاء في التحويل.
البنية
toTime64OrZero(x)وسيطة
x— تمثيل نصي لوقت بدقة أجزاء من الثانية.String
القيمة المُعادة
تُرجِع قيمة من النوع Time64 عند النجاح، وإلا 00:00:00.000. Time64
أمثلة
مثال على الاستخدام
SELECT toTime64OrZero('12:30:45.123'), toTime64OrZero('invalid')┌─toTime64OrZero('12:30:45.123')─┬─toTime64OrZero('invalid')─┐
│ 12:30:45.123 │ 00:00:00.000 │
└────────────────────────────────┴───────────────────────────┘toTimeOrNull
طُرح في: v25.5.0
يحوّل قيمة الإدخال إلى قيمة من النوع Time، ولكنه يعيد NULL في حال حدوث خطأ.
يشبه toTime، لكنه يعيد NULL بدلًا من طرح استثناء عند حدوث أخطاء في التحويل.
انظر أيضًا:
بنية
toTimeOrNull(x)وسيطة
x— تمثيل نصي لوقت.String
القيمة المعادة
يعيد قيمة Time عند النجاح، وإلا NULL. Time أو NULL
أمثلة
مثال للاستخدام
SELECT toTimeOrNull('12:30:45'), toTimeOrNull('invalid')┌─toTimeOrNull('12:30:45')─┬─toTimeOrNull('invalid')─┐
│ 12:30:45 │ ᴺᵁᴸᴸ │
└──────────────────────────┴─────────────────────────┘toTimeOrZero
استُحدث في: v25.5.0
يحوّل قيمة الإدخال إلى قيمة من النوع Time، لكنه يعيد 00:00:00 في حال حدوث خطأ.
يشبه toTime، لكنه يعيد 00:00:00 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
بنية
toTimeOrZero(x)الوسيطات
x— تمثيل نصي لوقت.String
القيمة المُعادة
تُعيد قيمة من النوع Time عند النجاح، وإلا 00:00:00.
أمثلة
مثال على الاستخدام
SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid')┌─toTimeOrZero('12:30:45')─┬─toTimeOrZero('invalid')─┐
│ 12:30:45 │ 00:00:00 │
└──────────────────────────┴─────────────────────────┘toUInt128
ظهر في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع UInt128.
يطرح استثناءً في حال حدوث خطأ.
تستخدم الدالة التقريب باتجاه الصفر، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt128('0xc0fe');.
انظر أيضًا:
البنية
toUInt128(expr)الوسائط
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
القيمة المعادة
تُرجع قيمة عدد صحيح غير موقّع بطول 128 بت. UInt128
أمثلة
مثال على الاستخدام
SELECT
toUInt128(128),
toUInt128(128.8),
toUInt128('128')
FORMAT VerticalRow 1:
──────
toUInt128(128): 128
toUInt128(128.8): 128
toUInt128('128'): 128toUInt128OrDefault
أُضيف في: v21.11.0
مثل toUInt128، تحوّل هذه الدالة قيمة مُدخلة إلى قيمة من النوع UInt128، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
البنية
toUInt128OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.UInt128
القيمة المُعادة
يعيد قيمة من النوع UInt128 عند النجاح، وإلا يعيد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم تُمرَّر. UInt128
أمثلة
تحويل ناجح
SELECT toUInt128OrDefault('128', CAST('0', 'UInt128'))128تعذّر التحويل
SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128'))0toUInt128OrNull
أُضيف في: v21.6.0
على غرار toUInt128، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt128، لكنها تُرجع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt128OrNull('0xc0fe');.
انظر أيضًا:
الصياغة
toUInt128OrNull(x)المعاملات
x— تمثيل نصي لرقم.String
القيمة المعادة
تعيد قيمة من النوع UInt128، أو NULL إذا تعذّر التحويل. UInt128 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toUInt128OrNull('128'),
toUInt128OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt128OrNull('128'): 128
toUInt128OrNull('abc'): ᴺᵁᴸᴸtoUInt128OrZero
أُضيف في: v1.1.0
مثل toUInt128، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt128، لكنها تُرجع 0 في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt128OrZero('0xc0fe');.
انظر أيضًا:
البنية
toUInt128OrZero(x)الوسيطات
x— تمثيل نصي لرقم.String
القيمة المُعادة
يعيد قيمة من النوع UInt128، أو 0 إذا فشلت عملية التحويل. UInt128
أمثلة
مثال على الاستخدام
SELECT
toUInt128OrZero('128'),
toUInt128OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt128OrZero('128'): 128
toUInt128OrZero('abc'): 0toUInt16
استُحدثت في: v1.1.0
تُحوِّل قيمة إدخال إلى قيمة من النوع UInt16.
تُطلق استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والست عشرية، مثل:
SELECT toUInt16('0xc0fe');.
انظر أيضًا:
الصياغة
toUInt16(expr)الوسائط
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
القيمة المعادة
تُرجع قيمة عدد صحيح غير موقّع من 16 بت. UInt16
أمثلة
مثال على الاستخدام
SELECT
toUInt16(16),
toUInt16(16.16),
toUInt16('16')
FORMAT VerticalRow 1:
──────
toUInt16(16): 16
toUInt16(16.16): 16
toUInt16('16'): 16toUInt16OrDefault
تم تقديمه في: v21.11.0
على غرار toUInt16، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt16، لكنها تُرجِع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجَع القيمة 0 عند حدوث خطأ.
الصياغة
toUInt16OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.UInt16
القيمة المعادة
يُرجع قيمة من النوع UInt16 عند النجاح، وإلا يُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. UInt16
أمثلة
تحويل ناجح
SELECT toUInt16OrDefault('16', CAST('0', 'UInt16'))16فشل التحويل
SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16'))0toUInt16OrNull
أُضيفت في: v1.1.0
مثل toUInt16، تحوّل هذه الدالة قيمة مُدخلة إلى قيمة من النوع UInt16، لكنها تُرجع NULL عند حدوث خطأ.
الوسائط المدعومة:
- تمثيلات نصية لقيم (U)Int8/16/32/128/256.
الوسائط غير المدعومة (تُرجع NULL):
- تمثيلات نصية لقيم Float*، بما في ذلك
NaNوInf. - تمثيلات نصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt16OrNull('0xc0fe');.
انظر أيضًا:
البنية
toUInt16OrNull(x)الوسيطات
x— تمثيل نصي لرقم.String
القيمة المعادة
يعيد قيمة من النوع UInt16، أو NULL إذا تعذّر التحويل. UInt16 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toUInt16OrNull('16'),
toUInt16OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt16OrNull('16'): 16
toUInt16OrNull('abc'): ᴺᵁᴸᴸtoUInt16OrZero
قُدِّمت في: v1.1.0
على غرار toUInt16، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt16، لكنها تُرجع 0 في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int8/16/32/128/256.
الوسيطات غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt16OrZero('0xc0fe');.
انظر أيضًا:
الصيغة
toUInt16OrZero(x)الوسائط
x— تمثيل سلسلة نصية لرقم.String
القيمة المُعادة
يعيد قيمة من النوع UInt16، أو 0 إذا تعذّر التحويل. UInt16
أمثلة
مثال على الاستخدام
SELECT
toUInt16OrZero('16'),
toUInt16OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt16OrZero('16'): 16
toUInt16OrZero('abc'): 0toUInt256
تم تقديمها في: v1.1.0
تحوّل قيمة الإدخال إلى قيمة من النوع UInt256. تطرح استثناءً في حال حدوث خطأ. تستخدم الدالة التقريب نحو الصفر، أي إنها تحذف الخانات الكسرية من الأعداد.
الوسيطات المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والست عشرية، مثل
SELECT toUInt256('0xc0fe');.
راجع أيضًا:
البنية
toUInt256(expr)الوسائط
expr— تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
القيمة المُعادة
يُرجِع قيمة عدد صحيح غير موقَّع بطول 256 بت. UInt256
أمثلة
مثال على الاستخدام
SELECT
toUInt256(256),
toUInt256(256.256),
toUInt256('256')
FORMAT VerticalRow 1:
──────
toUInt256(256): 256
toUInt256(256.256): 256
toUInt256('256'): 256toUInt256OrDefault
أُضيف في: v21.11.0
على غرار toUInt256، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt256، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
الصياغة
toUInt256OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل.UInt256
القيمة المعادة
يُرجع قيمة من النوع UInt256 عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. UInt256
أمثلة
تحويل ناجح
SELECT toUInt256OrDefault('-256', CAST('0', 'UInt256'))0فشل التحويل
SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256'))0toUInt256OrNull
أُضيف في: v20.8.0
مثل toUInt256، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt256، لكنها تُرجع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والست عشرية، على سبيل المثال
SELECT toUInt256OrNull('0xc0fe');.
انظر أيضًا:
الصياغة
toUInt256OrNull(x)المعاملات
x— تمثيل نصي لرقم.String
القيمة المُعادة
ترجع قيمة من النوع UInt256، أو NULL إذا تعذر التحويل. UInt256 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toUInt256OrNull('256'),
toUInt256OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt256OrNull('256'): 256
toUInt256OrNull('abc'): ᴺᵁᴸᴸtoUInt256OrZero
أُضيف في: v20.8.0
مثل toUInt256، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt256، لكنها تُرجع 0 عند حدوث خطأ.
الوسائط المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسائط غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt256OrZero('0xc0fe');.
انظر أيضًا:
البنية
toUInt256OrZero(x)الوسيطات
x— تمثيل نصي لعدد.String
القيمة المعادة
يعيد قيمة من النوع UInt256، أو 0 إذا تعذّر التحويل. UInt256
أمثلة
مثال على الاستخدام
SELECT
toUInt256OrZero('256'),
toUInt256OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt256OrZero('256'): 256
toUInt256OrZero('abc'): 0toUInt32
أُضيف في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع UInt32.
يطرح استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt32('0xc0fe');.
انظر أيضًا:
البنية
toUInt32(expr)الوسائط
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
القيمة المُعادة
تُرجع قيمة عدد صحيح غير موقّع بعرض 32 بت. UInt32
أمثلة
مثال على الاستخدام
SELECT
toUInt32(32),
toUInt32(32.32),
toUInt32('32')
FORMAT VerticalRow 1:
──────
toUInt32(32): 32
toUInt32(32.32): 32
toUInt32('32'): 32toUInt32OrDefault
أُضيف في: v21.11.0
مثل toUInt32، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt32، لكنها تُعيد القيمة الافتراضية عند حدوث خطأ.
إذا لم تُمرَّر قيمة default، فستُعاد القيمة 0 عند حدوث خطأ.
الصيغة
toUInt32OrDefault(expr[, default])المعاملات
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُرجع إذا تعذّر التحليل.UInt32
القيمة المُعادة
تُرجع قيمة من النوع UInt32 عند النجاح، وإلا فتُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. UInt32
أمثلة
تحويل ناجح
SELECT toUInt32OrDefault('32', CAST('0', 'UInt32'))32تعذّر التحويل
SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32'))0toUInt32OrNull
أُضيف في: v1.1.0
على غرار toUInt32، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt32، لكنها تُرجع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int8/16/32/128/256.
الوسيطات غير المدعومة (تُرجع NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt32OrNull('0xc0fe');.
انظر أيضًا:
البنية
toUInt32OrNull(x)المعاملات
x— تمثيل نصي لعدد.String
القيمة المُعادة
تُرجِع قيمة من النوع UInt32، أو NULL إذا أخفقت عملية التحويل. UInt32 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toUInt32OrNull('32'),
toUInt32OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt32OrNull('32'): 32
toUInt32OrNull('abc'): ᴺᵁᴸᴸtoUInt32OrZero
قُدِّم في: v1.1.0
مثل toUInt32، تحوّل هذه الدالة قيمة إدخال إلى قيمة من النوع UInt32، لكنها تُرجع 0 عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int8/16/32/128/256.
الوسيطات غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل
SELECT toUInt32OrZero('0xc0fe');.
راجع أيضًا:
الصياغة
toUInt32OrZero(x)المعاملات
x— تمثيل نصي لعدد.String
القيمة المُعادة
تُرجِع قيمة من النوع UInt32، وإلا فتُرجِع 0 إذا تعذّر التحويل. UInt32
أمثلة
مثال على الاستخدام
SELECT
toUInt32OrZero('32'),
toUInt32OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt32OrZero('32'): 32
toUInt32OrZero('abc'): 0toUInt64
أُضيف في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع UInt64.
يطرح استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الأنواع غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل
SELECT toUInt64('0xc0fe');.
انظر أيضًا:
الصياغة
toUInt64(expr)الوسائط
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
القيمة المُعادة
يُرجع قيمة عدد صحيح غير موقّع بطول 64 بت. UInt64
أمثلة
مثال على الاستخدام
SELECT
toUInt64(64),
toUInt64(64.64),
toUInt64('64')
FORMAT VerticalRow 1:
──────
toUInt64(64): 64
toUInt64(64.64): 64
toUInt64('64'): 64toUInt64OrDefault
قُدِّمت في: v21.11.0
مثل toUInt64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt64، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
الصيغة
toUInt64OrDefault(expr[, default])الوسيطات
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.UInt64
القيمة المُعادة
تُرجع قيمة من النوع UInt64 عند النجاح، وإلا فتُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. UInt64
أمثلة
تحويل ناجح
SELECT toUInt64OrDefault('64', CAST('0', 'UInt64'))64تعذّر التحويل
SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64'))0toUInt64OrNull
تم تقديمه في: v1.1.0
على غرار toUInt64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt64، ولكنها تُرجع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt64OrNull('0xc0fe');.
انظر أيضًا:
الصياغة
toUInt64OrNull(x)المعاملات
x— تمثيل نصي لرقم.String
القيمة المُعادة
تُرجِع قيمة من النوع UInt64، أو NULL إذا تعذّر التحويل. UInt64 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toUInt64OrNull('64'),
toUInt64OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt64OrNull('64'): 64
toUInt64OrNull('abc'): ᴺᵁᴸᴸtoUInt64OrZero
أُضيفت في: v1.1.0
على غرار toUInt64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt64، لكنها تُرجع 0 في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
الوسيطات غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل
SELECT toUInt64OrZero('0xc0fe');.
انظر أيضًا:
البنية
toUInt64OrZero(x)الوسائط
x— تمثيل نصي لعدد.String
القيمة المُعادة
تُعيد قيمة من النوع UInt64، وإلا فتُعيد 0 إذا فشل التحويل. UInt64
أمثلة
مثال على الاستخدام
SELECT
toUInt64OrZero('64'),
toUInt64OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt64OrZero('64'): 64
toUInt64OrZero('abc'): 0toUInt8
تم تقديمه في: v1.1.0
يحوّل قيمة الإدخال إلى قيمة من النوع UInt8.
يطرح استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
الوسيطات غير المدعومة:
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt8('0xc0fe');.
انظر أيضًا:
الصياغة
toUInt8(expr)الوسائط
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
القيمة المُعادة
يُرجع قيمة من نوع عدد صحيح غير موقّع من 8 بتات. UInt8
أمثلة
مثال على الاستخدام
SELECT
toUInt8(8),
toUInt8(8.8),
toUInt8('8')
FORMAT VerticalRow 1:
──────
toUInt8(8): 8
toUInt8(8.8): 8
toUInt8('8'): 8toUInt8OrDefault
قُدِّمت في: v21.11.0
على غرار toUInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt8، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم تُمرَّر قيمة default، فستُرجِع 0 عند حدوث خطأ.
الصياغة
toUInt8OrDefault(expr[, default])الوسائط
expr—تعبيريُرجِع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا فشلت عملية التحليل.UInt8
القيمة المُعادة
يُرجِع قيمة من النوع UInt8 عند النجاح، وإلا يُرجِع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. UInt8
أمثلة
تحويل ناجح
SELECT toUInt8OrDefault('8', CAST('0', 'UInt8'))8تعذّر التحويل
SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8'))0toUInt8OrNull
تم تقديمها في: v1.1.0
مثل toUInt8، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt8، ولكنها تُرجِع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لـ (U)Int8/16/32/128/256.
الوسيطات غير المدعومة (تُرجِع NULL):
- التمثيلات النصية لقيم Float* العادية، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt8OrNull('0xc0fe');.
انظر أيضًا:
الصياغة
toUInt8OrNull(x)الوسيطات
x— تمثيل نصي لرقم.String
القيمة المعادة
يعيد قيمة من النوع UInt8، وإلا فيُرجع NULL إذا أخفق التحويل. UInt8 أو NULL
أمثلة
مثال على الاستخدام
SELECT
toUInt8OrNull('42'),
toUInt8OrNull('abc')
FORMAT VerticalRow 1:
──────
toUInt8OrNull('42'): 42
toUInt8OrNull('abc'): ᴺᵁᴸᴸtoUInt8OrZero
تم تقديمها في: v1.1.0
مثل toUInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt8، ولكنها تُرجع 0 عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int8/16/32/128/256.
الوسيطات غير المدعومة (تُرجع 0):
- التمثيلات النصية لقيم Float* العادية، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt8OrZero('0xc0fe');.
انظر أيضًا:
البنية
toUInt8OrZero(x)الوسائط
x— تمثيل نصي لعدد.String
القيمة المُعادة
تعيد قيمة من النوع UInt8، أو 0 إذا تعذر التحويل. UInt8
أمثلة
مثال على الاستخدام
SELECT
toUInt8OrZero('-8'),
toUInt8OrZero('abc')
FORMAT VerticalRow 1:
──────
toUInt8OrZero('-8'): 0
toUInt8OrZero('abc'): 0toUUID
أُضيف في الإصدار: v1.1.0
يحوّل قيمة من النوع String إلى قيمة من النوع UUID.
الصيغة
toUUID(string)الوسيطات
string— قيمة UUID على هيئة سلسلة نصية.StringأوFixedString
القيمة المعادة
تعيد قيمة UUID من التمثيل النصي لـ UUID. UUID
أمثلة
مثال على الاستخدام
SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid┌─uuid─────────────────────────────────┐
│ 61f0c404-5cb3-11e7-907b-a6006ad3dba0 │
└──────────────────────────────────────┘toUUIDOrZero
أُضيف في: v20.12.0
يحوّل قيمة إدخال إلى قيمة من النوع UUID، لكنه يعيد UUID صفريًا في حال حدوث خطأ.
وهو مشابه لـ toUUID، لكنه يعيد UUID صفريًا (00000000-0000-0000-0000-000000000000) بدلًا من طرح استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- التمثيلات النصية لـ UUID بالتنسيق القياسي (8-4-4-4-12 رقمًا سداسيًا عشريًا).
- التمثيلات النصية لـ UUID من دون واصلات (32 رقمًا سداسيًا عشريًا).
الوسيطات غير المدعومة (تعيد UUID صفريًا):
- تنسيقات نصية غير صالحة.
- أنواع غير نصية.
الصياغة
toUUIDOrZero(x)الوسائط
x— تمثيل نصي لـ UUID.String
القيمة المُعادة
يعيد قيمة UUID عند النجاح، وإلا فيُعيد UUID صفريًا (00000000-0000-0000-0000-000000000000). UUID
أمثلة
مثال على الاستخدام
SELECT
toUUIDOrZero('550e8400-e29b-41d4-a716-446655440000') AS valid_uuid,
toUUIDOrZero('invalid-uuid') AS invalid_uuid┌─valid_uuid───────────────────────────┬─invalid_uuid─────────────────────────┐
│ 550e8400-e29b-41d4-a716-446655440000 │ 00000000-0000-0000-0000-000000000000 │
└──────────────────────────────────────┴──────────────────────────────────────┘toUnixTimestamp64Micro
استُحدث في: v20.5.0
يحوّل DateTime64 إلى قيمة من النوع Int64 بدقة ميكروثانية ثابتة.
تُضبط قيمة الإدخال بالزيادة أو النقصان بحسب دقتها.
الصياغة
toUnixTimestamp64Micro(value)المعاملات
value— قيمة من النوع DateTime64 بأي درجة دقة.DateTime64
القيمة المُعادة
يعيد طابعًا زمنيًا بتنسيق Unix بالميكروثانية. Int64
أمثلة
مثال على الاستخدام
WITH toDateTime64('2025-02-13 23:31:31.011123', 6, 'UTC') AS dt64
SELECT toUnixTimestamp64Micro(dt64);┌─toUnixTimestamp64Micro(dt64)─┐
│ 1739489491011123 │
└──────────────────────────────┘toUnixTimestamp64Milli
أُضيف في: v20.5.0
يحوّل DateTime64 إلى قيمة Int64 بدقة ميلي ثانية ثابتة.
وتُزاد قيمة الإدخال أو تُخفض بالشكل المناسب وفقًا لدقتها.
الصيغة
toUnixTimestamp64Milli(value)الوسائط
value— قيمة من نوع DateTime64 بأي درجة دقة.DateTime64
القيمة المُعادة
تُرجِع طابعًا زمنيًا بتنسيق Unix بالمللي ثانية. Int64
أمثلة
مثال على الاستخدام
WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64
SELECT toUnixTimestamp64Milli(dt64);┌─toUnixTimestamp64Milli(dt64)─┐
│ 1739489491011 │
└──────────────────────────────┘toUnixTimestamp64Nano
أُضيف في: v20.5.0
يحوّل DateTime64 إلى قيمة Int64 بدقة نانوثانية ثابتة.
ويُزاد مقياس قيمة الإدخال أو يُخفَّض حسب دقتها.
الصياغة
toUnixTimestamp64Nano(value)الوسائط
value— قيمة من نوع DateTime64 بأي مستوى دقة.DateTime64
القيمة المُعادة
يعيد طابعًا زمنيًا بنظام Unix بوحدة النانوثانية. Int64
أمثلة
مثال على الاستخدام
WITH toDateTime64('2025-02-13 23:31:31.011123456', 9, 'UTC') AS dt64
SELECT toUnixTimestamp64Nano(dt64);┌─toUnixTimestamp64Nano(dt64)─┐
│ 1739489491011123456 │
└─────────────────────────────┘toUnixTimestamp64Second
أُضيفت في: v24.12.0
يحوّل قيمة DateTime64 إلى قيمة Int64 بدقة ثابتة بالثواني.
تُزاد قيمة الإدخال أو تُخفَّض بالشكل المناسب وفقًا لدقتها.
الصياغة
toUnixTimestamp64Second(value)الوسائط
value— قيمة من نوع DateTime64 بأي درجة precision.DateTime64
القيمة المعادة
تُرجِع طابعًا زمنيًا لـ Unix بالثواني. Int64
أمثلة
مثال استخدام
WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64
SELECT toUnixTimestamp64Second(dt64);┌─toUnixTimestamp64Second(dt64)─┐
│ 1739489491 │
└───────────────────────────────┘