المشكلات الشائعة في تحويل البيانات
يستخدم ClickHouse عمومًا السلوك نفسه المستخدم في برامج C++. تختلف دوالto<type> وcast في سلوكهما في بعض الحالات، مثل حالة LowCardinality: إذ يزيل cast السمة LowCardinality، بينما لا تفعل دوال to<type> ذلك. وينطبق الأمر نفسه على Nullable. هذا السلوك غير متوافق مع معيار SQL، ويمكن تغييره باستخدام الإعداد cast_keep_nullable.
انتبه إلى احتمال فقدان البيانات إذا جرى تحويل قيم من نوع بيانات إلى نوع أصغر (على سبيل المثال من
Int64 إلى Int32) أو بين
أنواع بيانات غير متوافقة (على سبيل المثال من String إلى Int). تأكد بعناية من أن النتيجة مطابقة لما هو متوقع.ملاحظات حول دوال toString
تتيح عائلة الدوال toString التحويل بين الأرقام، والسلاسل النصية (لكن ليس السلاسل ذات الطول الثابت)، والتواريخ، والتواريخ المقترنة بوقت.
تقبل جميع هذه الدوال وسيطة واحدة.
- عند التحويل من سلسلة نصية أو إليها، تُنسَّق القيمة أو تُحلَّل وفق القواعد نفسها المستخدمة في تنسيق TabSeparated (وفي معظم تنسيقات النص الأخرى أيضًا). وإذا تعذّر تحليل السلسلة النصية، يُطرَح استثناء ويُلغى الطلب.
- عند تحويل التواريخ إلى أرقام أو العكس، يمثّل التاريخ عدد الأيام منذ بداية حقبة Unix.
- عند تحويل التواريخ المقترنة بوقت إلى أرقام أو العكس، يمثّل التاريخ مع الوقت عدد الثواني منذ بداية حقبة Unix.
- يمكن لدالة
toStringالخاصة بوسيطةDateTimeأن تأخذ وسيطةStringثانية تتضمن اسم المنطقة الزمنية، على سبيل المثال:Europe/Amsterdam. وفي هذه الحالة، يُنسَّق الوقت وفقًا للمنطقة الزمنية المحددة.
ملاحظات حول الدالتين toDate/toDateTime
تُعرَّف تنسيقات التاريخ والتاريخ المقترن بالوقت للدالتين toDate/toDateTime كما يلي:
toDate(unix_timestamp)، التي كانت ستؤدي بخلاف ذلك إلى حدوث خطأ، وستستلزم كتابة الصيغة الأكثر تعقيدًا toDate(toDateTime(unix_timestamp)).
يُجرى التحويل بين التاريخ وتاريخ مع وقت بالطريقة الطبيعية: بإضافة وقت صفري أو بحذف الوقت.
يستخدم التحويل بين الأنواع الرقمية القواعد نفسها المستخدمة في الإسناد بين الأنواع الرقمية المختلفة في C++.
مثال
Query
Response
toUnixTimestamp.
CAST
أُضيف في: v1.1.0 يحوّل قيمة إلى نوع البيانات المحدد. وعلى خلاف الدالة reinterpret، تحاول CAST إنتاج القيمة نفسها في النوع الهدف. إذا لم يكن ذلك ممكنًا، يُرفَع استثناء. البنيةAny
أمثلة
الاستخدام الأساسي
Query
Response
Query
Response
Query
Response
DATE
أُضيف في: v21.2.0 يحوّل الوسيط إلى نوع البيانات Date. هذا اسم مستعار للتوافق مع MySQL للدالةtoDate، ويتصرف بالطريقة نفسها التي تتصرف بها toDate.
الصيغة
Date
أمثلة
الاستخدام الأساسي
Query
Response
accurateCast
أُضيف في: v1.1.0 يحوّل قيمة إلى نوع بيانات محدد. بخلافCAST، يُجري accurateCast تحقّقًا أكثر صرامة من الأنواع ويطرح استثناءً إذا كان التحويل سيؤدي إلى فقدان الدقة أو إذا لم يكن التحويل ممكنًا.
هذه الدالة أكثر أمانًا من CAST العادي لأنها تمنع فقدان الدقة وعمليات التحويل غير الصالحة.
البنية
Any
أمثلة
تحويل ناجح
Query
Response
Query
Response
accurateCastOrDefault
أُضيفت في: v21.1.0 تُحوِّل قيمة إلى نوع البيانات المحدد. تشبهaccurateCast، لكنها تُرجع قيمة افتراضية بدلًا من إثارة استثناء إذا تعذّر إجراء التحويل بدقة.
إذا جرى توفير قيمة افتراضية باعتبارها الوسيط الثاني، فيجب أن تكون من النوع الهدف.
إذا لم تُوفَّر قيمة افتراضية، تُستخدم القيمة الافتراضية للنوع الهدف.
الصياغة
x— قيمة لتحويلها.AnyT— اسم نوع البيانات الهدف.const Stringdefault_value— اختياري. القيمة الافتراضية التي تُعاد إذا فشل التحويل.Any
Any
أمثلة
تحويل ناجح
Query
Response
Query
Response
Query
Response
accurateCastOrNull
قُدِّمت في: v1.1.0 تحوّل قيمة إلى نوع البيانات المحدد. وهي تشبهaccurateCast، لكنها تُرجع NULL بدلًا من طرح استثناء إذا تعذّر إجراء التحويل بدقة.
تجمع هذه الدالة بين أمان accurateCast والمعالجة السلسة للأخطاء.
الصياغة
NULL إذا تعذر التحويل. Any
أمثلة
تحويل ناجح
Query
Response
Query
Response
formatRow
أُضيفت في: v20.7.0 يحوّل أي تعبيرات إلى سلسلة نصية باستخدام التنسيق المحدد.إذا كان التنسيق يحتوي على لاحقة/بادئة، فستُكتب في كل صف.
لا تدعم هذه الدالة إلا التنسيقات المعتمدة على الصفوف.
String
أمثلة
الاستخدام الأساسي
Query
Response
Query
Response
formatRowNoNewline
أُضيف في: v20.7.0 مماثل لـformatRow، لكنه يزيل محرف السطر الجديد من كل صف.
يحوّل تعبيرات عشوائية إلى سلسلة نصية باستخدام التنسيق المحدد، لكنه يزيل أي محارف سطر جديد لاحقة من النتيجة.
الصيغة
String
أمثلة
الاستخدام الأساسي
Query
Response
fromUnixTimestamp64Micro
استُحدث في: v20.5.0 يحوّل طابعًا زمنيًا لـ Unix بالميكروثانية إلى قيمةDateTime64 بدقة الميكروثانية.
تُعامَل قيمة الإدخال على أنها طابع زمني لـ Unix بدقة الميكروثانية (عدد الميكروثواني منذ 1970-01-01 00:00:00 UTC).
الصياغة
value— طابع زمني لـ Unix بالميكروثانية.Int64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
DateTime64 بدقة ميكروثانية. DateTime64(6)
أمثلة
مثال للاستخدام
Query
Response
fromUnixTimestamp64Milli
أُضيف في: v20.5.0 يحوّل طابعًا زمنيًا لـ Unix بالملّي ثانية إلى قيمةDateTime64 بدقة الملّي ثانية.
تُعامَل قيمة الإدخال على أنها طابع زمني لـ Unix بدقة الملّي ثانية (عدد الملّي ثواني منذ 1970-01-01 00:00:00 UTC).
الصياغة
value— طابع زمني بنظام Unix بالمللي ثانية.Int64timezone— اختياري. المنطقة الزمنية للقيمة المعادة.String
DateTime64 بدقة المللي ثانية. DateTime64(3)
أمثلة
مثال على الاستخدام
Query
Response
fromUnixTimestamp64Nano
أُضيفت في: v20.5.0 تُحوِّل طابعًا زمنيًا من Unix بالنانوثانية إلى قيمةDateTime64 بدقة النانوثانية.
تُعامَل قيمة الإدخال على أنها طابع زمني من Unix بدقة النانوثانية (أي عدد النانوثواني منذ 1970-01-01 00:00:00 UTC).
يُرجى ملاحظة أن قيمة الإدخال تُعامَل على أنها طابع زمني بتوقيت UTC، وليس وفق المنطقة الزمنية لقيمة الإدخال.
value— طابع زمني لـ Unix بالنانوثانية.Int64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
DateTime64 بدقة نانوثانية. DateTime64(9)
أمثلة
مثال للاستخدام
Query
Response
fromUnixTimestamp64Second
أُضيف في: v24.12.0 يحوّل طابعًا زمنيًا من Unix بالثواني إلى قيمةDateTime64 بدقة الثواني.
تُعامَل قيمة الإدخال على أنها طابع زمني من Unix بدقة الثواني (أي عدد الثواني منذ 1970-01-01 00:00:00 UTC).
الصيغة
value— طابع زمني بنظام Unix بالثواني.Int64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
DateTime64 بدقة الثواني. DateTime64(0)
أمثلة
مثال على الاستخدام
Query
Response
kqlParameterCast
أُضيف في: v26.9.0 يتحقق من قيمة ما مقابل نوع Kusto Query Language مُصرَّح به ويحوّلها إلى الحامل المقابل لذلك النوع في ClickHouse: فأي argument لا ينتمي نوعه إلى نوع KQL المُصرَّح به يُرفض أثناء التحليل، أما القيمة التي لا تتسع (overflow فيint مثلاً) فتُعدّ error على مستوى كل row. الوسيط الثاني هو اسم نوع KQL المُصرَّح به، والثالث يصف
الـ parameter في رسالة الخطأ؛ ويجب أن يكون كلاهما سلاسل نصية ثابتة.
تدعم هذه الدالة معاملات الدوال ذات الأنواع المحددة عندما يكون dialect = 'kusto'، وهي ليست مخصصة
للاستدعاء المباشر من SQL.
الصيغة
value— الوسيط الذي يمرره استدعاء دالة KQL. -type— اسم نوع KQL المُعلَن، وهو constant string. -parameter— وصف الـ parameter، وهو constant string يُستخدم في رسالة الـ error.
value على هيئة carrier الخاص بـ ClickHouse للنوع المُعلَن.
Examples
long
Query
Response
Query
Response
kqlToTimespan
أُضيف في: v26.8.0 يحوّل قيمةً إلى timespan (أيInterval بالنانو ثانية) تمامًا كما تفعل الدالة
totimespan() في Kusto Query Language: فقيمة الـ timespan تمرّ كما هي، والرقم يُحتسب أيامًا، والسلسلة النصية تُقرأ بالصيغة
[-][d.]hh:mm:ss[.fffffff] — وتُعاد NULL عند تعذّر تحليلها.
تستند totimespan() إلى هذه الدالة عندما يكون dialect = 'kusto'، وهي غير مخصّصة للاستدعاء
مباشرةً من SQL.
الصيغة
x— قيمة timespan، أو عدد من الأيام، أو سلسلة نصية تمثّل قيمة timespan.
NULL إذا كانت السلسلة النصية لا تمثّل قيمة timespan.
Examples
string
Query
Response
Query
Response
parseDateTime
تم تقديمه في: v23.3.0 يُحلّل سلسلة تاريخ ووقت وفقًا لسلسلة تنسيق تاريخ خاصة بـ MySQL. هذه الدالة هي عكسformatDateTime.
وهي تُحلّل وسيطًا من النوع String باستخدام سلسلة تنسيق من النوع String. وتُرجِع قيمة من النوع DateTime.
البنية
TO_UNIXTIME
الوسيطات
time_string— سلسلة نصية تُحلَّل إلى DateTime.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
DateTime
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime32BestEffort
أُضيف في: v20.9.0 يحوّل التمثيل النصي للتاريخ والوقت إلى نوع البياناتDateTime.
تحلّل الدالة تنسيقات ISO 8601 وRFC 1123 - 5.2.14 RFC-822 Date and Time Specification وتنسيقات التاريخ والوقت الخاصة بـ ClickHouse، بالإضافة إلى بعض التنسيقات الأخرى.
الصيغة
time_string— قيمة من نوع String تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringوفقًا لها.String
time_string كقيمة من نوع DateTime. DateTime
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
Query
Response
parseDateTime32BestEffortOrNull
أُضيفت في: v20.9.0 مماثلة لـparseDateTime32BestEffort، باستثناء أنها تُرجِع NULL عند مواجهة تنسيق تاريخ يتعذّر معالجته.
الصياغة
time_string— قيمة من النوعStringتحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لهاtime_string.String
DateTime مُفسَّرًا من السلسلة، أو NULL إذا فشل التفسير. DateTime
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime32BestEffortOrZero
أُضيفت في: v20.9.0 مطابقة لـparseDateTime32BestEffort، باستثناء أنها تُرجِع تاريخًا صفريًا أو قيمة تاريخ ووقت صفرية عند مصادفة تنسيق تاريخ يتعذر معالجته.
البنية
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لهاtime_string.String
DateTime ناتجًا عن تحليل السلسلة، أو التاريخ الصفري (1970-01-01 00:00:00) إذا فشلت عملية التحليل. DateTime
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64
أُضيف في: v24.11.0 يُحلِّل سلسلة تاريخ ووقت بدقة أجزاء من الثانية وفقًا لسلسلة تنسيق تاريخ MySQL. هذه الدالة هي المعكوس لـformatDateTime لـ DateTime64.
وهي تُحلِّل وسيطة من النوع String باستخدام String للتنسيق. وتُرجع نوع DateTime64 يمكنه تمثيل التواريخ من 0000 إلى 9999 بدقة أجزاء من الثانية (تغطي درجات الدقة العالية نطاقًا أضيق لأن القيمة تُخزَّن في Int64 كعدد من tick: تصل الدقة 8 إلى نحو 4892، وتمتد الدقة 9 من 1677 إلى 2262).
الصيغة
time_string— سلسلة نصية يُراد تحليلها إلى DateTime64.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
DateTime64
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64BestEffort
أُضيف في: v20.1.0 تماثل الدالةparseDateTimeBestEffort، لكنها تُحلِّل أيضًا المللي ثانية والميكروثانية وتُرجع نوع البيانات DateTime64.
البنية
time_string— قيمة من نوعStringتحتوي على تاريخ أو تاريخ ووقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للملّي ثانية، و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تحلّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
time_string بعد تحويله إلى نوع البيانات DateTime64. DateTime64
أمثلة
مثال للاستخدام
Query
Response
parseDateTime64BestEffortOrNull
مُتاحة منذ: v20.1.0 مطابقة للدالةparseDateTime64BestEffort، إلا أنها تُرجع NULL عند مواجهة تنسيق تاريخ يتعذر معالجته.
الصياغة
time_string— قيمةStringتحتوي على تاريخ أو تاريخ مع وقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للملّي ثانية و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تُحلِّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
time_string بعد تحويله إلى DateTime64، أو NULL إذا تعذّر تحليل الإدخال. DateTime64 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64BestEffortOrZero
قُدِّم في: v20.1.0 مماثلة لـparseDateTime64BestEffort، إلا أنها تُرجع تاريخًا صفريًا أو تاريخًا ووقتًا صفريين عند مصادفة تنسيق تاريخ يتعذر معالجته.
الصياغة
time_string— قيمة من نوع String تحتوي على تاريخ أو تاريخ مع وقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للمللي ثانية، و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تحلّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
time_string بعد تحويله إلى DateTime64، أو التاريخ/التاريخ والوقت الصفري (1970-01-01 00:00:00.000) إذا تعذّر تحليل الإدخال. DateTime64
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64BestEffortUS
تم تقديمها في: v22.8.0 مماثلة لـparseDateTime64BestEffort، باستثناء أن هذه الدالة تُفضّل تنسيق التاريخ الأمريكي (MM/DD/YYYY وما إلى ذلك) عند وجود التباس.
البنية
time_string—Stringيحتوي على تاريخ أو تاريخ يتضمن وقتًا لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للملّي ثانية، و6للميكروثانية. الافتراضي:3.UInt8time_zone— اختياري. المنطقة الزمنية. تحلّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
time_string بعد تحويله إلى DateTime64 مع تفضيل تنسيق التاريخ الأمريكي في الحالات الملتبسة. DateTime64
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64BestEffortUSOrNull
أُضيفت في: v22.8.0 مماثلة لـparseDateTime64BestEffort، باستثناء أن هذه الدالة تفضّل تنسيق التاريخ الأمريكي (MM/DD/YYYY وما إلى ذلك) عند وجود التباس، وتُرجع NULL إذا صادفت تنسيق تاريخ لا يمكن معالجته.
البنية
time_string— قيمةStringتحتوي على تاريخ أو تاريخًا مع وقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للميلي ثانية، و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تُحلِّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
time_string بعد تحويله إلى DateTime64 مع تفضيل التنسيق الأمريكي، أو NULL إذا تعذر تحليل الإدخال. DateTime64 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64BestEffortUSOrZero
أُضيف في: v22.8.0 مماثلة لـparseDateTime64BestEffort، باستثناء أن هذه الدالة تفضّل تنسيق التاريخ الأمريكي (MM/DD/YYYY وما إلى ذلك) عند وجود التباس، وتُرجع التاريخ الصفري أو التاريخ والوقت الصفري إذا صادفت تنسيق تاريخ يتعذّر معالجته.
الصياغة
time_string— قيمةStringتحتوي على تاريخ أو تاريخ مع وقت لتحويله.Stringprecision— اختياري. الدقة المطلوبة.3للميلي ثانية، و6للميكروثانية. القيمة الافتراضية:3.UInt8time_zone— اختياري. المنطقة الزمنية. تُحلِّل الدالةtime_stringوفقًا للمنطقة الزمنية.String
time_string بعد تحويله إلى DateTime64 باستخدام تفضيل التنسيق الأمريكي، أو قيمة التاريخ/التاريخ والوقت الصفرية (1970-01-01 00:00:00.000) إذا تعذّر تحليل الإدخال. DateTime64
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64InJodaSyntax
أُضيف في: v24.10.0 يُحلِّل سلسلة تاريخ ووقت بدقة أجزاء من الثانية وفقًا لسلسلة تنسيق تاريخ Joda. هذه الدالة هي معكوسformatDateTimeInJodaSyntax لـ DateTime64.
تُحلِّل وسيطًا من النوع String باستخدام سلسلة تنسيق بأسلوب Joda. وتُرجع نوع DateTime64، الذي يمكنه تمثيل التواريخ من 0000 إلى 9999 بدقة أجزاء من الثانية (تغطي درجات الدقة الأعلى نطاقًا أضيق لأن القيمة تُخزَّن في عدد Int64 من وحدات tick: تصل الدقة 8 إلى نحو 4892، وتمتد الدقة 9 من 1677 إلى 2262).
راجِع توثيق Joda Time للاطلاع على أنماط التنسيق.
البنية
time_string— قيمةStringالمراد تحليلها إلى DateTime64.Stringformat— سلسلة تنسيق بصياغة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
DateTime64
أمثلة
مثال استخدام
Query
Response
parseDateTime64InJodaSyntaxOrNull
أُضيف في: v24.10.0 مماثلة لـparseDateTime64InJodaSyntax، لكنها تُرجع NULL عند مواجهة تنسيق تاريخ يتعذّر تحليله.
البنية
time_string— سلسلة نصية لتحليلها إلى DateTime64.Stringformat— سلسلة تنسيق بصيغة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
Nullable(DateTime64)
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64InJodaSyntaxOrZero
أُضيف في: v24.10.0 مثلparseDateTime64InJodaSyntax، لكنها تُرجع التاريخ الصفري عند مواجهة تنسيق تاريخ غير قابل للتحليل.
البنية
time_string— سلسلة نصية لتحليلها إلى DateTime64.Stringformat— سلسلة تنسيق بصياغة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
DateTime64
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64OrNull
أُضيفت في: v24.11.0 مماثلة لـparseDateTime64، ولكنها تُرجع NULL عند مصادفة تنسيق تاريخ يتعذّر تحليله.
البنية
time_string— سلسلة نصية تُحلَّل إلى DateTime64.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
Nullable(DateTime64)
أمثلة
مثال على الاستخدام
Query
Response
parseDateTime64OrZero
أُضيف في: v24.11.0 مماثلة لـparseDateTime64، لكنها تُرجع التاريخ الصفري عند مواجهة تنسيق تاريخ يتعذر تحليله.
البنية
time_string— سلسلة نصية تُحلَّل إلى DateTime64.Stringformat— سلسلة تنسيق تحدد كيفية تحليلtime_string.Stringtimezone— اختياري. المنطقة الزمنية.String
DateTime64
أمثلة
مثال على الاستخدام
Query
Response
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.
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringوفقًا لها.String
time_string على هيئة DateTime. DateTime
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
Query
Response
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.
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُفسَّرtime_stringوفقًا لها.String
time_string كقيمة من النوع DateTime، أو NULL إذا تعذر تفسير المُدخل. DateTime أو NULL
أمثلة
مثال على الاستخدام
Query
Response
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.
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringوفقًا لها.String
time_string كـ DateTime، أو تاريخًا/تاريخًا ووقتًا صفريًا (1970-01-01 أو 1970-01-01 00:00:00) إذا تعذّر تحليل المُدخل. DateTime
أمثلة
مثال على الاستخدام
Query
Response
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.
البنية
time_string— قيمةStringتحتوي على تاريخ ووقت لتحويله.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringعلى أساسها.String
time_string كقيمة DateTime مع تفضيل تنسيق التاريخ الأمريكي في الحالات الملتبسة. DateTime
أمثلة
مثال على الاستخدام
Query
Response
parseDateTimeBestEffortUSOrNull
تم تقديمها في: v1.1.0 مماثلة للدالةparseDateTimeBestEffortUS، باستثناء أنها تُرجع NULL عندما تصادف تنسيق تاريخ يتعذر معالجته.
تتصرف هذه الدالة مثل parseDateTimeBestEffort مع تنسيقات تاريخ ISO، لكنها تفضّل تنسيق التاريخ الأمريكي في الحالات الملتبسة، مع إرجاع NULL عند حدوث أخطاء في التحليل.
البنية
time_string— سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُحلَّلtime_stringوفقًا لها.String
time_string كقيمة من نوع DateTime باستخدام تفضيل التنسيق الأمريكي، أو NULL إذا تعذّر تحليل الإدخال. DateTime أو NULL
أمثلة
مثال على الاستخدام
Query
Response
parseDateTimeBestEffortUSOrZero
أُضيفت في: v1.1.0 هي مماثلة للدالةparseDateTimeBestEffortUS، باستثناء أنها تُرجِع تاريخًا صفريًا (1970-01-01) أو تاريخًا صفريًا مع وقت (1970-01-01 00:00:00) عند مواجهة تنسيق تاريخ يتعذر معالجته.
تعمل هذه الدالة مثل parseDateTimeBestEffort مع تنسيقات تاريخ ISO، لكنها تُفضّل تنسيق التاريخ الأمريكي في الحالات الملتبسة، وتُرجِع قيمة صفرية عند حدوث أخطاء في التحليل.
البنية
time_string— قيمة من النوعStringتحتوي على تاريخ ووقت لتحويلهما.Stringtime_zone— اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لهاtime_string.String
time_string على هيئة DateTime مع تفضيل التنسيق الأمريكي، أو التاريخ/التاريخ والوقت الصفري (1970-01-01 أو 1970-01-01 00:00:00) إذا تعذّر تفسير الإدخال. DateTime
أمثلة
مثال على الاستخدام
Query
Response
parseDateTimeInJodaSyntax
قُدِّمت في: v23.3.0 تحلّل سلسلة تاريخ ووقت وفقًا لـ date format string بنمط Joda. هذه الدالة هي معكوسformatDateTimeInJodaSyntax.
وهي تحلّل String argument باستخدام format String بنمط Joda. وتُرجِع نوع DateTime.
ارجع إلى توثيق Joda Time للاطلاع على أنماط التنسيق.
البنية
time_string— سلسلة نصية تُحلَّل إلى DateTime.Stringformat— سلسلة تنسيق ببنية Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
DateTime
أمثلة
مثال على الاستخدام
Query
Response
parseDateTimeInJodaSyntaxOrNull
أُضيفت في: v23.3.0 مماثلة لـparseDateTimeInJodaSyntax، لكنها تُرجِع NULL عند مصادفة تنسيق تاريخ يتعذر تحليله.
البنية
time_string— قيمة String المطلوب تحليلها إلى DateTime.Stringformat— سلسلة تنسيق ببناء جملة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
Nullable(DateTime)
أمثلة
مثال على الاستخدام
Query
Response
parseDateTimeInJodaSyntaxOrZero
قُدِّم في: v23.3.0 مماثلة لـparseDateTimeInJodaSyntax، لكنها تُرجع التاريخ الصفري عند مواجهة تنسيق تاريخ يتعذر تحليله.
الصياغة
time_string— سلسلة نصية المطلوب تحليلها إلى DateTime.Stringformat— سلسلة تنسيق ببناء جملة Joda تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
DateTime
أمثلة
مثال على الاستخدام
Query
Response
parseDateTimeOrNull
أُضيفت في: v23.3.0 مثلparseDateTime، لكنها تُرجع NULL عند مواجهة تنسيق تاريخ يتعذر تحليله.
البنية
str_to_date
المعاملات
time_string— سلسلة نصية يُراد تحليلها إلى DateTime.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
Nullable(DateTime)
أمثلة
مثال على الاستخدام
Query
Response
parseDateTimeOrZero
استُحدث في: v23.3.0 مماثلة لـparseDateTime، لكنها تُرجع التاريخ الصفري عند مصادفة تنسيق تاريخ غير قابل للتحليل.
الصياغة
time_string— سلسلة نصية مطلوب تحليلها إلى DateTime.Stringformat— سلسلة تنسيق تحدد كيفية تحليل time_string.Stringtimezone— اختياري. المنطقة الزمنية.String
DateTime
أمثلة
مثال على الاستخدام
Query
Response
reinterpret
قُدِّمت في: v1.1.0 تستخدم نفس تسلسل بايتات المصدر في الذاكرة للقيمة المعطاةx، وتُعيد تفسيره كنوع الوجهة.
عندما يكون نوع الوجهة هو String، لا تكون المصفوفة المصدر Array مدعومة إلا إذا كان نوع عناصرها ثابت الحجم ومتجاورًا في الذاكرة (على سبيل المثال، Array(UInt8) أو Array(FixedString(2)))؛ وتُنسخ بايتات عناصرها حرفيًا بترتيبها الأصلي في الذاكرة، بحيث يمكن إعادة تفسير النتيجة مرة أخرى إلى النوع الأصلي Array على أي معمارية. أما المصفوفات التي تكون عناصرها متغيرة الطول (على سبيل المثال، Array(String)) أو قابلة لأن تكون NULL (على سبيل المثال، Array(Nullable(Int32))) فهي غير مدعومة.
البنية
x— القيمة المطلوب إعادة تفسيرها. عند إعادة التفسير إلىString، يجب أن يحتوي المصدرArrayعلى عناصر متجاورة ثابتة الحجم.Anytype— النوع الهدف. إذا كان مصفوفة، فيجب أن يكون نوع عناصر المصفوفة من الأنواع ذات الطول الثابت.String
Any
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
Query
Response
reinterpretAsDate
قُدِّم في: v1.1.0 يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Date (بافتراض ترتيب البايتات little endian)، وهي عدد الأيام منذ بداية Unix epoch 1970-01-01 البنيةx— عدد الأيام منذ بداية حقبة Unix.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
Date
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsDateTime
أُضيف في: v1.1.0 يعيد تفسير قيمة الإدخال على أنها قيمة من نوع DateTime (على افتراض ترتيب little endian)، وهي عدد الأيام منذ بداية حقبة Unix 1970-01-01 الصياغةx— عدد الثواني منذ بداية حقبة يونكس.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
DateTime
أمثلة
مثال للاستخدام
Query
Response
reinterpretAsFixedString
تم تقديمه في: v1.1.0 يعيد تفسير قيمة الإدخال على أنها سلسلة ثابتة الطول (بافتراض ترتيب البايتات little endian). يُتجاهَل بايت NULL في النهاية، فعلى سبيل المثال، تُرجِع الدالة للقيمة 255 من النوع UInt32 سلسلةً تحتوي على محرف واحد. البنيةx. FixedString
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsFloat32
أُضيف في: v1.1.0 يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Float32. وعلى خلافCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
x— القيمة المراد إعادة تفسيرها كـFloat32.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. Float32
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsFloat64
أُضيفت في: v1.1.0 تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Float64. وعلى خلافCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
x— قيمة يُعاد تفسيرها كـ Float64.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. Float64
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsInt128
أُضيف في: v1.1.0 يُعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int128. وبخلافCAST، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ فإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
x— القيمة المراد إعادة تفسيرها كـ Int128.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. Int128
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsInt16
أُضيفت في: v1.1.0 تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int16. وعلى خلافCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع المستهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
الصياغة
x— القيمة المراد إعادة تفسيرها كـ Int16.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. Int16
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsInt256
قُدِّمت في: v1.1.0 يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Int256. وعلى خلافCAST، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون النتيجة غير معرّفة.
البنية
x— القيمة المراد إعادة تفسيرها كـ Int256.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. Int256
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsInt32
قُدِّمت في: v1.1.0 تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int32. وعلى خلافCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
x— القيمة المراد إعادة تفسيرها إلى Int32.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. Int32
أمثلة
مثال للاستخدام
Query
Response
reinterpretAsInt64
تم تقديمه في: v1.1.0 يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int64. وخلافًا لـCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
x— القيمة المراد إعادة تفسيرها كـ Int64.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. Int64
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsInt8
أُضيف في: v1.1.0 يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Int8. وعلى خلافCAST، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
x— القيمة المراد إعادة تفسيرها إلى Int8.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. Int8
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsString
ظهر في: v1.1.0 تعيد تفسير قيمة الإدخال كسلسلة نصية. بالنسبة إلى القيم scalar، يُطبَّع ترتيب البايتات إلى little endian، ويتم تجاهل وحدات null byte الموجودة في النهاية. على سبيل المثال، تُرجِع الدالة للقيمة 255 من النوع UInt32 سلسلة نصية تحتوي على محرف واحد. أما في حالةArray من عناصر ثابتة الحجم، فتُنسخ بايتات العناصر حرفيًا بترتيبها الأصلي داخل الذاكرة، من دون إزالة بايتات الصفر اللاحقة ومن دون التطبيع إلى little endian، بحيث يمكن إعادة تفسير النتيجة إلى نوع Array الأصلي على أي معمارية.
البنية
String تحتوي على بايتات تمثل x. String
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
reinterpretAsUInt128
أُضيفت في: v1.1.0 تعيد تفسير قيمة الإدخال على أنها قيمة من النوع UInt128. وعلى خلافCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
x— القيمة المراد إعادة تفسيرها كـ UInt128.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. UInt128
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsUInt16
أُضيف في: v1.1.0 يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt16. وعلى خلافCAST، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
البنية
x— القيمة المطلوب إعادة تفسيرها كـ UInt16.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. UInt16
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsUInt256
قُدِّم في: v1.1.0 يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt256. وعلى خلافCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
الصياغة
x— القيمة المراد إعادة تفسيرها بصفتها UInt256.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. UInt256
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsUInt32
قُدِّمت في: v1.1.0 يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt32. وعلى خلافCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، فستكون قيمة الإخراج غير معرّفة.
الصيغة
x— القيمة المراد إعادة تفسيرها على أنها UInt32.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. UInt32
أمثلة
مثال للاستخدام
Query
Response
reinterpretAsUInt64
أُضيفت في: v1.1.0 تعيد هذه الدالة تفسير قيمة الإدخال على أنها قيمة من النوع UInt64. وخلافًا لـCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.
الصيغة
x— القيمة المراد إعادة تفسيرها كـ UInt64.Int*أوUInt*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x. UInt64
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsUInt8
أُضيف في: v1.1.0 يعيد تفسير قيمة الإدخال على أنها قيمة من النوع UInt8. وعلى خلافCAST، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون النتيجة غير معرّفة.
البنية
x— القيمة المطلوب إعادة تفسيرها باعتبارها UInt8.(U)Int*أوFloat*أوDateأوDateTimeأوUUIDأوStringأوFixedString
x بعد إعادة تفسيرها. UInt8
أمثلة
مثال على الاستخدام
Query
Response
reinterpretAsUUID
أُضيفت في: v1.1.0 تقبل سلسلة بطول 16 بايت وتُرجع UUID عبر تفسير كل نصف مكوّن من 8 بايتات بترتيب البايتات little-endian. وإذا لم يكن طول السلسلة كافيًا، فستعمل الدالة كما لو أُضيف إليها العدد اللازم من البايتات الصفرية في النهاية. وإذا كانت السلسلة أطول من 16 بايتًا، فسيتم تجاهل البايتات الزائدة في النهاية. البنيةfixed_string— سلسلة بايتات بترتيبbig-endian.FixedString
UUID. UUID
أمثلة
من String إلى UUID
Query
Response
toBFloat16
أُضيف في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوع BFloat16. ويُطلق استثناءً عند حدوث خطأ. انظر أيضًا: الصيغةexpr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
BFloat16
أمثلة
مثال على الاستخدام
Query
Response
toBFloat16OrNull
أُضيفت في: v1.1.0 تحوِّل قيمة إدخال من نوع String إلى قيمة من النوع BFloat16. إذا كانت السلسلة النصية لا تمثِّل قيمة عددية بفاصلة عائمة، فتعيد الدالة NULL. الوسيطات المدعومة:- التمثيلات النصية للقيم الرقمية.
NULL):
- التمثيلات النصية للقيم الثنائية والسداسية العشرية.
- القيم الرقمية.
تسمح الدالة بفقدان الدقة بصمت أثناء التحويل من التمثيل النصي.
x— تمثيل نصي لرقم.String
brain-float من 16 بت، وإلا NULL. BFloat16 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toBFloat16OrZero
طُرح في: v1.1.0 يحوّل قيمة إدخال من نوع String إلى قيمة من النوع BFloat16. إذا لم تكن السلسلة النصية تمثل قيمة بفاصلة عائمة، فستُرجع الدالة صفرًا. الوسيطات المدعومة:- التمثيلات النصية للقيم الرقمية.
0):
- التمثيلات النصية للقيم الثنائية والسداسية العشرية.
- القيم الرقمية.
تسمح الدالة بفقدان الدقة بصمت أثناء التحويل من التمثيل النصي.
x— تمثيل نصي لعدد.String
brain-float ذات 16 بت، وإلا فتُرجع 0. BFloat16
أمثلة
مثال على الاستخدام
Query
Response
toBool
أُضيف في: v22.2.0 يحوّل قيمة الإدخال إلى قيمة من النوع Bool. الصيغةexpr— تعبير يُرجع رقمًا أو سلسلة نصية. بالنسبة إلى السلاسل النصية، يقبل ‘true’ أو ‘false’ (غير حساس لحالة الأحرف).(U)Int*أوFloat*أوStringأوExpression
true أو false بناءً على تقييم الوسيط. Bool
أمثلة
مثال على الاستخدام
Query
Response
toDate
أُضيف في: v1.1.0 يحوّل قيمة مُدخلة إلى النوعDate.
يدعم التحويل من الأنواع String وFixedString وDateTime أو من الأنواع الرقمية.
البنية
x— قيمة الإدخال المطلوب تحويلها.StringأوFixedStringأوDateTimeأو(U)Int*أوFloat*
Date
أمثلة
تحويل String إلى Date
Query
Response
Query
Response
Query
Response
toDate32
أُضيف في: v21.9.0 يحوّل الوسيطة إلى نوع البيانات Date32. إذا كانت القيمة خارج النطاق[0000-01-01, 9999-12-31]، فإن toDate32 يعيد القيم الحدّية التي يدعمها Date32.
إذا كانت الوسيطة من النوع Date، فتُؤخذ حدودها في الاعتبار.
البنية
Date32
أمثلة
ضمن النطاق
Query
Response
Query
Response
toDate32OrDefault
أُضيف في: v21.11.0 يحوِّل الوسيط إلى نوع البيانات Date32. إذا تعذّر تحويل الوسيط، بما في ذلك القيمة الرقمية الواقعة خارج نطاق Date32، فإن الدالة تُرجع قيمة افتراضية تكون إما الوسيط الثاني (إذا تم تحديده)، أو1900-01-01 بخلاف ذلك، وهي القيمة الافتراضية التاريخية لـ Date32 (وليست حدها الأدنى، وهو 0000-01-01). وإذا كان الوسيط من النوع Date، فتُؤخذ حدوده في الاعتبار.
لاحظ أنه، بخلاف toDate32، لا تقيِّد هذه الدالة الوسيط الرقمي الواقع خارج النطاق ضمن حدود Date32؛ بل يُعامل هذا الوسيط على أنه غير قابل للتحويل.
البنية
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل.Date32
Date32
أمثلة
تحويل ناجح
Query
Response
Query
Response
Query
Response
toDate32OrNull
أُضيف في: v21.9.0 يحوّل قيمة الإدخال إلى قيمة من النوع Date32، لكنه يعيدNULL إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ toDate32، لكنه يعيد NULL إذا كانت الوسيطة غير صالحة.
البنية
x— تمثيل نصي لتاريخ.String
NULL. Date32 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toDate32OrZero
أُضيف في: v21.9.0 يحوّل قيمة الإدخال إلى قيمة من النوع Date32، لكنه يعيد القيمة الافتراضية1900-01-01 إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ toDate32، لكنه يعيد 1900-01-01 إذا كانت الوسيطة غير صالحة.
لاحظ أن 1900-01-01 قيمة افتراضية تاريخية للإدخال غير الصالح، وليست الحد الأدنى لـ Date32، وهو 0000-01-01.
انظر أيضًا:
الصيغة
x— تمثيل نصي لتاريخ.String
Date32 عند النجاح، وإلا تُعيد القيمة الافتراضية التاريخية للإدخال غير الصالح (1900-01-01). Date32
أمثلة
مثال على الاستخدام
Query
Response
toDateOrDefault
تم تقديمها في: v21.11.0 مثل toDate، ولكن إذا تعذّر ذلك، فتعيد قيمة افتراضية تكون إما الوسيطة الثانية (إذا كانت محددة)، أو الحد الأدنى لنوع Date بخلاف ذلك. الصياغةexpr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.Date
Date
أمثلة
تحويل ناجح
Query
Response
Query
Response
toDateOrNull
استُحدث في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوعDate، لكنه يعيد NULL إذا تلقّى وسيطة غير صالحة.
وهو مثل toDate، لكنه يعيد NULL إذا تلقّى وسيطة غير صالحة.
تُفسَّر الوسيطة الصحيحة بالطريقة نفسها المتّبعة في toDate (على أنها عدد الأيام منذ 1970-01-01 إذا لم تتجاوز 65535، وإلا فتُعد Unix timestamp)، وتُرجع NULL إذا كانت خارج نطاق النوع Date.
الصياغة
x— تمثيل نصي لتاريخ، أو عدد صحيح من الأيام، أو Unix timestamp.Stringأو(U)Int8/16/32/64
Date عند النجاح، وإلا NULL. Date أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toDateOrZero
أُضيف في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوعDate، لكنه يعيد الحد الأدنى لـ Date عند تمرير وسيطة غير صالحة.
وهو مماثل لـ toDate، لكنه يعيد الحد الأدنى لـ Date عند تمرير وسيطة غير صالحة.
انظر أيضًا:
البنية
x— تمثيل نصي لتاريخ.String
1970-01-01). Date
أمثلة
مثال على الاستخدام
Query
Response
toDateTime
أُضيف في: v1.1.0 يحوّل قيمة مُدخلة إلى النوع DateTime.إذا كانت
expr رقمًا، فسيُفسَّر على أنه عدد الثواني منذ بداية حقبة Unix (أي كـ طابع زمني لـ Unix).
إذا كانت expr من النوع String، فقد تُفسَّر على أنها طابع زمني لـ Unix أو على أنها تمثيل نصي لتاريخ أو لتاريخ مع وقت.
لذلك، يُعطَّل صراحةً تحليل التمثيلات النصية للأرقام القصيرة (حتى 4 أرقام) بسبب الالتباس؛ فعلى سبيل المثال، قد تكون السلسلة '1999' سنةً (تمثيلًا نصيًا غير مكتمل لـ Date / DateTime) أو طابع زمني لـ Unix. ويُسمح بالسلاسل الرقمية الأطول.expr قيمة من النوع Time أو Time64، فسيُفسَّر على أنه عدد الثواني منذ بداية حقبة Unix: ويُقرَّب الجزء الكسري من Time64 نزولًا نحو سالب اللانهاية، أما القيم الواقعة خارج نطاق DateTime فتتبع الإعداد date_time_overflow_behavior.
الصيغة
expr— القيمة.StringأوIntأوDateأوDate32أوTimeأوTime64أوDateTimeأوDateTime64time_zone— المنطقة الزمنية.String
DateTime
أمثلة
مثال على الاستخدام
Query
Response
toDateTime32
أُضيف: v20.9.0 يحوّل قيمة الإدخال إلى النوعDateTime.
يدعم التحويل من String أو FixedString أو Date أو Date32 أو Time أو Time64 أو DateTime أو DateTime64 أو الأنواع الرقمية ((U)Int8 أو (U)Int16 أو (U)Int32 أو (U)Int64 أو (U)Int128 أو (U)Int256 أو BFloat16 أو Float32 أو Float64). لا تُدعم قيم Decimal وتؤدي إلى استثناء.
DateTime32 اسم مستعار لـ DateTime ويدعم التواريخ من 1970-01-01 00:00:00 إلى 2106-02-07 06:28:15.
عند التحويل من سلسلة أو من أحد الأنواع الرقمية القابلة للإشباع المذكورة أعلاه، تُقيَّد القيم الواقعة خارج هذا النطاق بحدوده. لا يمكن تحويل قيم الفاصلة العائمة غير المنتهية (NaN وinf و-inf) وتؤدي إلى استثناء.
تتبع التحويلات من أنواع التاريخ والوقت الأخرى، مثل Date32 أو DateTime64 أو Time أو Time64، الإعداد date_time_overflow_behavior: فقد ينتج عن وضع ignore الافتراضي قيم ملتفة، بينما يقيّد saturate القيم بحدود النطاق، ويطرح throw استثناءً. تُقرَّب قيم Time64 أولاً نزولاً نحو ما لا نهاية السالبة إلى ثوانٍ كاملة.
الصيغة
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأو(U)Int*أوFloat*أوBFloat16أوDateأوDate32أوTimeأوTime64أوDateTimeأوDateTime64timezone— اختياري. المنطقة الزمنية لقيمةDateTimeالمُعادة.String
DateTime
أمثلة
من سلسلة نصية
Query
Response
Query
Response
Query
Response
toDateTime64
أُضيف في: v20.1.0 يحوّل قيمة الإدخال إلى قيمة من النوعDateTime64.
الصيغة
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرscale— حجم الـ tick (الدقة): 10^(-scale) ثانية.UInt8timezone— اختياري. المنطقة الزمنية لكائنDateTime64المحدد.String
DateTime64
أمثلة
القيمة ضمن النطاق
Query
Response
Query
Response
Query
Response
toDateTime64OrDefault
أُضيف في: v21.11.0 مثل toDateTime64، تُحوِّل هذه الدالة قيمة إدخال إلى قيمة من النوع DateTime64، لكنها تُرجع إما القيمة الافتراضية من DateTime64 أو القيمة الافتراضية المُعطاة إذا تم تمرير مُعامل غير صالح. الصيغةexpr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*scale— حجم الـ tick (الدقة): 10^-precision ثانية.UInt8timezone— اختياري. المنطقة الزمنية.Stringdefault— اختياري. القيمة الافتراضية التي ستُعاد إذا لم تنجح عملية التحليل.DateTime64
DateTime64
أمثلة
تحويل ناجح
Query
Response
Query
Response
toDateTime64OrNull
استُحدثت في: v20.1.0 يحوّل قيمة إدخال إلى قيمة من النوعDateTime64، لكنه يعيد NULL إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ toDateTime64، لكنه يعيد NULL إذا كانت الوسيطة غير صالحة.
تُفسَّر الوسيطة الصحيحة على أنها Unix timestamp بالثواني الكاملة، وتنتج NULL إذا كانت خارج نطاق النوع DateTime64.
البنية
x— تمثيل نصي لتاريخ ووقت بدقة أجزاء الثانية، أو طابع زمني Unix صحيح.Stringأو(U)Int8/16/32/64precision— اختياري. دقة أجزاء الثانية للقيمة المُعادة.UInt8timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
DateTime64 عند النجاح، وإلا NULL. DateTime64 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toDateTime64OrZero
أُضيفت في: v20.1.0 يحوِّل قيمة الإدخال إلى قيمة من النوع DateTime64، لكنه يعيد قيمة DateTime64 الصفرية (حقبة Unix،1970-01-01 00:00:00) إذا استلم وسيطة غير صالحة.
وهو مماثل لـ toDateTime64، لكنه يعيد قيمة DateTime64 الصفرية إذا استلم وسيطة غير صالحة.
راجع أيضًا:
الصيغة
x— تمثيل نصي لتاريخ ووقت بدقة أجزاء من الثانية.Stringprecision— اختياري. دقة أجزاء الثانية للقيمة المعادة.UInt8timezone— اختياري. المنطقة الزمنية للقيمة المعادة.String
1970-01-01 00:00:00) بالدقة المطلوبة. DateTime64
أمثلة
مثال على الاستخدام
Query
Response
toDateTimeOrDefault
تم تقديمه في: v21.11.0 مثل toDateTime، ولكن إذا تعذّر التحويل، فإنه يعيد قيمة افتراضية تكون إما الوسيطة الثالثة (إذا كانت محددة)، أو الحد الأدنى لنوع DateTime بخلاف ذلك. البنيةexpr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*timezone— اختياري. المنطقة الزمنية.Stringdefault— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.DateTime
DateTime
أمثلة
تحويل ناجح
Query
Response
Query
Response
toDateTimeOrNull
أُضيفت في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوعDateTime، لكنه يُرجع NULL إذا تلقّى وسيطًا غير صالح.
وهو مماثل لـ toDateTime، لكنه يُرجع NULL إذا تلقّى وسيطًا غير صالح.
ويُفسَّر الوسيط الصحيح على أنه طابع زمني Unix، ويُنتج NULL إذا كان خارج نطاق النوع DateTime.
البنية
x— تمثيل نصي لتاريخ ووقت، أو طابع زمني Unix صحيح.Stringأو(U)Int8/16/32/64timezone— اختياري. المنطقة الزمنية للقيمة المُعادة.String
DateTime عند النجاح، وإلا NULL. DateTime أو NULL
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
toDateTimeOrZero
تم تقديمه في: v1.1.0 يحوّل قيمة مُدخلة إلى قيمة من النوع DateTime، لكنه يعيد الحد الأدنى لـ DateTime إذا كانت الوسيطة غير صالحة. وهو مماثل لـ toDateTime، لكنه يعيد الحد الأدنى لـ DateTime إذا كانت الوسيطة غير صالحة. البنيةx— تمثيل نصي لتاريخ ووقت.String
1970-01-01 00:00:00). DateTime
أمثلة
مثال على الاستخدام
Query
Response
toDecimal128
أُضيفت في: v18.12.0 تحوّل قيمة إدخال إلى قيمة من النوعDecimal(38, S) بمقياس S.
يرفع استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(دون حساسية لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toDecimal128('0xc0fe', 1);.
قد يحدث تجاوز إذا كانت قيمة
expr تتجاوز حدود Decimal128:(-1*10^(38 - S), 1*10^(38 - S)).
تُهمَل الأرقام الزائدة في الجزء الكسري (من دون تقريب).
تؤدي الأرقام الزائدة في الجزء الصحيح إلى رفع استثناء.expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.ExpressionS— معامل المقياس بين 0 و38، ويُحدِّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من العدد.UInt8
Decimal(38, S) Decimal128(S)
أمثلة
مثال على الاستخدام
Query
Response
toDecimal128OrDefault
تم تقديمه في: v21.11.0 مثلtoDecimal128، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Decimal(38, S)، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
البنية
expr— تمثيل نصي لرقم.StringS— معامل المقياس بين 0 و38، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل إلى النوع Decimal128(S).Decimal128(S)
Decimal128(S)
أمثلة
تحويل ناجح
Query
Response
Query
Response
toDecimal128OrNull
أُضيف في: 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)).
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و38، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
NULL. Decimal128(S) أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toDecimal128OrZero
تم تقديمه في: v20.1.0 يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(38, S)، لكنه يعيد0 في حال حدوث خطأ.
يشبه toDecimal128، لكنه يعيد 0 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسائط المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
0):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(دون حساسية لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والست عشرية.
إذا تجاوزت قيمة الإدخال حدود
Decimal128:(-1*10^(38 - S), 1*10^(38 - S))، فستعيد الدالة 0.expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و38، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
0. Decimal128(S)
أمثلة
الاستخدام الأساسي
Query
Response
toDecimal256
طُرِحت في: v20.8.0 يحوّل قيمة الإدخال إلى قيمة من النوعDecimal(76, S) ذات مقياس S. يطلق استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
- القيم أو تمثيلاتها النصية لقيم Float*
NaNوInf(من دون حساسية لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toDecimal256('0xc0fe', 1);.
قد يحدث تجاوز إذا كانت قيمة
expr تتجاوز حدود Decimal256:(-1*10^(76 - S), 1*10^(76 - S)).
تُهمَل الأرقام الزائدة في الجزء الكسري (من دون تقريب).
وتؤدي الأرقام الزائدة في الجزء الصحيح إلى إطلاق استثناء.expr— تعبير يُرجِع عددًا أو تمثيلًا نصيًا لعدد.تعبيرS— معامل المقياس بين 0 و76، ويحدّد عدد الأرقام التي يمكن أن يحتوي عليها الجزء الكسري من العدد.UInt8
Decimal(76, S). Decimal256(S)
أمثلة
مثال على الاستخدام
Query
Response
toDecimal256OrDefault
أُضيفت في: v21.11.0 مثلtoDecimal256، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Decimal(76, S)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
الصيغة
expr— تمثيل نصي لرقم.StringS— معامل المقياس بين 0 و76، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل إلى النوع Decimal256(S).Decimal256(S)
Decimal256(S)
أمثلة
تحويل ناجح
Query
Response
Query
Response
toDecimal256OrNull
أُضيفت في: 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)).
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معلمة المقياس بين 0 و76، وتحدد عدد الخانات التي يمكن أن يتضمنها الجزء الكسري من الرقم.UInt8
NULL. Decimal256(S) أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toDecimal256OrZero
أُضيف في: v20.8.0 يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(76, S)، لكنه يعيد0 في حال حدوث خطأ.
يشبه toDecimal256، لكنه يعيد 0 بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
0):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(غير حساسة لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية عشرية.
إذا تجاوزت قيمة الإدخال حدود
Decimal256:(-1*10^(76 - S), 1*10^(76 - S))، فستعيد الدالة 0.expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.ExpressionS— معامل المقياس بين 0 و76، ويحدّد عدد الخانات التي يمكن أن يتكوّن منها الجزء الكسري من الرقم.UInt8
0. Decimal256(S)
أمثلة
مثال على الاستخدام
Query
Response
toDecimal32
أُضيف في: v18.12.0 يحوّل قيمة إدخال إلى قيمة من النوعDecimal(9, S) ذات مقياس S. ويطلق استثناءً عند حدوث خطأ.
الوسائط المدعومة:
- قيم أو تمثيلات نصية من النوع (U)Int*.
- قيم أو تمثيلات نصية من النوع Float*.
- قيم أو تمثيلات نصية لقيم Float*
NaNوInf(من دون حساسية لحالة الأحرف). - تمثيلات نصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toDecimal32('0xc0fe', 1);.
قد يحدث تجاوز سعة إذا تجاوزت قيمة
expr حدود Decimal32:(-1*10^(9 - S), 1*10^(9 - S)).
تُهمَل الأرقام الزائدة في الجزء الكسري (من دون تقريب).
أما الأرقام الزائدة في الجزء الصحيح فتؤدي إلى استثناء.expr— تعبير يُرجع رقمًا أو سلسلة نصية تمثل رقمًا.تعبيرS— معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يتكوّن منها الجزء الكسري من الرقم.UInt8
Decimal(9, S) Decimal32(S)
أمثلة
مثال على الاستخدام
Query
Response
toDecimal32OrDefault
قُدِّمت في: v21.11.0 مثلtoDecimal32، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Decimal(9, S)، لكنها تُرجِع القيمة الافتراضية في حال حدوث خطأ.
البنية
expr— تمثيل نصي لرقم.StringS— معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8default— اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل إلى النوع Decimal32(S).Decimal32(S)
Decimal32(S)
أمثلة
تحويل ناجح
Query
Response
Query
Response
toDecimal32OrNull
أُضيفت في: 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)).
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و9، ويحدّد عدد الأرقام التي يمكن أن يحتويها الجزء الكسري من الرقم.UInt8
NULL. Decimal32(S) أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toDecimal32OrZero
أُضيفت في: v20.1.0 تحوّل قيمة الإدخال إلى قيمة من النوع Decimal(9, S)، لكنها تُرجِع0 في حال حدوث خطأ.
تشبه toDecimal32، لكنها تُرجِع 0 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسائط المدعومة:
- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم أو تمثيلاتها النصية من النوع Float*.
0):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(دون مراعاة حالة الأحرف). - التمثيلات النصية للقيم الثنائية والسداسية عشرية.
إذا تجاوزت قيمة الإدخال حدود
Decimal32:(-1*10^(9 - S), 1*10^(9 - S))، فستُرجِع الدالة 0.expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.ExpressionS— معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يحتويها الجزء الكسري من الرقم.UInt8
0. Decimal32(S)
أمثلة
مثال على الاستخدام
Query
Response
toDecimal64
أُضيف في: v18.12.0 يحوّل قيمة الإدخال إلى قيمة من النوعDecimal(18, S) وبمقياس S.
يرفع استثناءً في حال حدوث خطأ.
الوسائط المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(غير حساسة لحالة الأحرف). - التمثيلات النصية للقيم الثنائية والست عشرية، مثل
SELECT toDecimal64('0xc0fe', 1);.
قد يحدث تجاوز إذا كانت قيمة
expr تتخطى حدود Decimal64:(-1*10^(18 - S), 1*10^(18 - S)).
تُهمَل الخانات الزائدة في الجزء الكسري (من دون تقريب).
تؤدي الخانات الزائدة في الجزء الصحيح إلى رفع استثناء.expr— تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم.ExpressionS— معامل المقياس بين 0 و18، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
Decimal(18, S)
أمثلة
مثال على الاستخدام
Query
Response
toDecimal64OrDefault
أُضيفت في: v21.11.0 مثلtoDecimal64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Decimal(18, S)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
الصيغة
expr— تمثيل نصي لرقم.StringS— معامل المقياس بين 0 و18، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحويل إلى النوع Decimal64(S).Decimal64(S)
Decimal64(S)
أمثلة
تحويل ناجح
Query
Response
Query
Response
toDecimal64OrNull
أُضيف في: 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)).
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و18، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
Decimal(18, S) عند النجاح، وإلا NULL. Decimal64(S) أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toDecimal64OrZero
أُضيف في: v20.1.0 يحوّل قيمة الإدخال إلى قيمة من النوع Decimal(18, S)، لكنه يعيد0 عند حدوث خطأ.
وهو يشبه toDecimal64، لكنه يعيد 0 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم أو التمثيلات النصية من النوع Float*.
0):
- القيم أو التمثيلات النصية لقيم Float*
NaNوInf(دون تمييز بين الأحرف الكبيرة والصغيرة). - التمثيلات النصية للقيم الثنائية والسداسية العشرية.
إذا تجاوزت قيمة الإدخال حدود
Decimal64:(-1*10^(18 - S), 1*10^(18 - S))، فستعيد الدالة 0.expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبيرS— معامل المقياس بين 0 و18، ويحدّد عدد الأرقام التي يمكن أن يحتوي عليها الجزء الكسري من الرقم.UInt8
0. Decimal64(S)
أمثلة
مثال على الاستخدام
Query
Response
toDecimalString
أُضيفت في: v23.3.0 تحوّل قيمة رقمية إلى String بعدد محدد من الخانات الكسرية. تقرّب الدالة قيمة الإدخال إلى العدد المحدد من المنازل العشرية. وإذا كانت قيمة الإدخال تحتوي على عدد من الخانات الكسرية أقل من المطلوب، فستُستكمل النتيجة بأصفار للوصول إلى العدد المحدد بدقة من الخانات الكسرية. الصياغةnumber— القيمة العددية المراد تحويلها إلى سلسلة نصية. يمكن أن تكون من أي نوع عددي (Int أو UInt أو Float أو Decimal).Int8أوInt16أوInt32أوInt64أوUInt8أوUInt16أوUInt32أوUInt64أوFloat32أوFloat64أوDecimalscale— عدد الخانات التي ستُعرض في الجزء الكسري. ستُقرَّب النتيجة عند الحاجة.UInt8
String
أمثلة
تقريب عدد وتنسيقه
Query
Response
Query
Response
Query
Response
toFixedString
قُدِّم في: v1.1.0 يحوّل وسيطًا من النوعString إلى النوع FixedString(N) (سلسلة نصية ذات طول ثابت مقداره N).
إذا كانت السلسلة النصية تحتوي على عدد بايتات أقل من N، فتُستكمل من اليمين ببايتات null.
إذا كانت السلسلة النصية تحتوي على عدد بايتات أكبر من N، يُطرح استثناء.
البنية
s— السلسلة المطلوب تحويلها.StringN— طول قيمة FixedString الناتجة.const UInt*
FixedString(N)
أمثلة
مثال على الاستخدام
Query
Response
toFloat32
أُضيف في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوع Float32. يطرح استثناءً في حال حدوث خطأ. الوسيطات المدعومة:- قيم من النوع (U)Int*.
- التمثيلات النصية لـ (U)Int8/16/32/128/256.
- قيم من النوع Float*، بما في ذلك
NaNوInf. - التمثيلات النصية لـ Float*، بما في ذلك
NaNوInf(غير حسّاسة لحالة الأحرف).
- التمثيلات النصية للقيم الثنائية والستّ عشرية، على سبيل المثال
SELECT toFloat32('0xc0fe');.
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
Float32
أمثلة
مثال للاستخدام
Query
Response
toFloat32OrDefault
أُضيفت في: v21.11.0 على غرارtoFloat32، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Float32، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فسيُرجع 0 عند حدوث خطأ.
الصيغة
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي ستُعاد إذا لم ينجح التحليل.Float32
Float32
أمثلة
تحويل ناجح
Query
Response
Query
Response
toFloat32OrNull
أُضيفت في: 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');. - تنسيقات سلاسل نصية غير صالحة.
x— تمثيل نصي لعدد.String
Float32 عند النجاح، وإلا NULL. Float32 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toFloat32OrZero
أُضيف في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوع Float32، ويُرجع0 في حال حدوث خطأ.
يشبه toFloat32، لكنه يُرجع 0 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
انظر أيضًا:
الصيغة
x— تمثيل نصي لعدد.String
0. Float32
أمثلة
مثال على الاستخدام
Query
Response
toFloat64
أُضيف في: v1.1.0 يحوِّل قيمة إدخال إلى قيمة من النوعFloat64.
يُطلق استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- قيم من النوع (U)Int*.
- التمثيلات النصية للقيم من النوع (U)Int8/16/32/128/256.
- قيم من النوع Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم من النوع Float*، بما في ذلك
NaNوInf(من دون حساسية لحالة الأحرف).
- التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toFloat64('0xc0fe');.
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
Float64
أمثلة
مثال على الاستخدام
Query
Response
toFloat64OrDefault
أُضيف في: v21.11.0 مثلtoFloat64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Float64، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فسيتم إرجاع 0 عند حدوث خطأ.
الصياغة
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا لم تنجح عملية التحليل.Float64
Float64 عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. Float64
أمثلة
تحويل ناجح
Query
Response
Query
Response
toFloat64OrNull
أُضيف في: 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');. - سلاسل نصية بتنسيق غير صالح.
x— تمثيل نصي لرقم.String
Float64 عند النجاح، وإلا NULL. Float64 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toFloat64OrZero
أُضيف في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوع Float64، لكنه يعيد0 في حال حدوث خطأ.
يشبه toFloat64، لكنه يعيد 0 بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.
انظر أيضًا:
البنية
x— تمثيل نصّي لرقم.String
Float64 عند النجاح، وإلا 0. Float64
أمثلة
مثال على الاستخدام
Query
Response
toInt128
قُدِّم في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوع Int128. يطرح استثناءً عند حدوث خطأ. تستخدم الدالة التقريب نحو الصفر، أي إنها تحذف الأرقام الكسرية من الأعداد. الوسيطات المدعومة:- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والقيم السداسية العشرية، مثل
SELECT toInt128('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int128، فقد يحدث تجاوز علوي أو سفلي في النتيجة.
ولا يُعدّ ذلك خطأً.
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
Int128
أمثلة
مثال على الاستخدام
Query
Response
toInt128OrDefault
أُضيف في: v21.11.0 مثلtoInt128، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int128، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
البنية
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُرجع إذا فشلت عملية التحليل.Int128
Int128
أمثلة
تحويل ناجح
Query
Response
Query
Response
toInt128OrNull
أُضيف في: v20.8.0 مثلtoInt128، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int128، لكنها تُرجع NULL عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والست عشرية، على سبيل المثال
SELECT toInt128OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int128، يحدث overflow أو underflow في النتيجة.
ولا يُعدّ ذلك خطأً.
x— تمثيل نصي لرقم.String
NULL إذا تعذّر التحويل. Int128 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toInt128OrZero
استُحدثت في: v20.8.0 يحوّل قيمة الإدخال إلى النوع Int128، لكنه يعيد0 في حال حدوث خطأ.
وهو يشبه toInt128، لكنه يعيد 0 بدلًا من إطلاق استثناء.
انظر أيضًا:
البنية
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأوFloat*أوDecimalأو(U)Int*أوDateأوDateTime
0 إذا فشل التحويل. Int128
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
toInt16
أُضيفت في: v1.1.0 تحوّل قيمة الإدخال إلى قيمة من النوعInt16.
تُطلق استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt16('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int16، يحدث overflow أو underflow في النتيجة.
ولا يُعدّ ذلك خطأً.
على سبيل المثال:
SELECT toInt16(32768) == -32768;.تستخدم الدالة rounding towards zero، ما يعني أنها تحذف الخانات الكسرية من الأرقام.
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
Int16
أمثلة
مثال على الاستخدام
Query
Response
toInt16OrDefault
أُضيفت في: v21.11.0 مثلtoInt16، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int16، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجَع القيمة 0 عند حدوث خطأ.
البنية
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.Int16
Int16
أمثلة
تحويل ناجح
Query
Response
Query
Response
toInt16OrNull
قُدِّمت في: v1.1.0 مثلtoInt16، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int16، لكنها تُعيد NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt16OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int16، يحدث فيض أو نقص في النتيجة.
ولا يُعدّ ذلك خطأً.
x— تمثيل نصي لرقم.String
Int16، أو NULL إذا تعذر التحويل. Int16 أو NULL
أمثلة
مثال للاستخدام
Query
Response
toInt16OrZero
أُضيف في: v1.1.0 مثلtoInt16، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int16، لكنها تُرجع 0 عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، على سبيل المثال
SELECT toInt16OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int16، يحدث overflow أو underflow في النتيجة.
ولا يُعدّ ذلك خطأً.
x— تمثيل نصي لعدد.String
0 إذا تعذّر التحويل. Int16
أمثلة
مثال على الاستخدام
Query
Response
toInt256
أُضيف في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوع Int256. يُطلق استثناءً في حال حدوث خطأ. تستخدم الدالة التقريب نحو الصفر، ما يعني أنها تحذف الأرقام الكسرية من الأعداد. الوسائط المدعومة:- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt256('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int256، فقد يحدث تجاوز أو قصور في النتيجة.
لا يُعدّ ذلك خطأً.
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
Int256
أمثلة
مثال على الاستخدام
Query
Response
toInt256OrDefault
أُضيفت في: v21.11.0 مثلtoInt256، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int256، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجِع 0 عند حدوث خطأ.
الصياغة
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.Int256
Int256
أمثلة
تحويل ناجح
Query
Response
Query
Response
toInt256OrNull
تم تقديمها في: v20.8.0 مثلtoInt256، تحوّل هذه الدالة قيمة إدخال إلى قيمة من النوع Int256، لكنها تعيد NULL عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toInt256OrNull('0xc0fe');.
إذا تعذر تمثيل قيمة الإدخال ضمن حدود Int256، يحدث overflow أو underflow في النتيجة.
ولا يُعد ذلك خطأً.
x— تمثيل نصي لرقم.String
NULL إذا تعذّر التحويل. Int256 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toInt256OrZero
استُحدث في: v20.8.0 يحوّل قيمة مُدخلة إلى النوع Int256، لكنه يعيد0 في حال حدوث خطأ.
يشبه toInt256، لكنه يعيد 0 بدلًا من إثارة استثناء.
انظر أيضًا:
البنية
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأوFloat*أوDecimalأو(U)Int*أوDateأوDateTime
0 إذا فشل التحويل. Int256
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
toInt32
أُضيفت في: v1.1.0 تحوِّل قيمة إدخال إلى قيمة من النوعInt32.
تطرح استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والقيم السداسية عشرية، على سبيل المثال
SELECT toInt32('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int32، فستتجاوز النتيجة الحدّ الأعلى أو الأدنى للنطاق.
ولا يُعدّ ذلك خطأً.
على سبيل المثال:
SELECT toInt32(2147483648) == -2147483648;تستخدم الدالة التقريب نحو الصفر، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.Expression
Int32
أمثلة
مثال للاستخدام
Query
Response
toInt32OrDefault
قُدِّمت في: v21.11.0 مثلtoInt32، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int32، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجِع 0 عند حدوث خطأ.
البنية
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُرجع إذا فشل التحليل.Int32
Int32
أمثلة
تحويل ناجح
Query
Response
Query
Response
toInt32OrNull
طُرحت في: v1.1.0 مثلtoInt32، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int32، لكنها تُرجع NULL عند حدوث خطأ.
الوسائط المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toInt32OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int32، يحدث تجاوز للحد الأعلى أو الأدنى في النتيجة.
ولا يُعدّ ذلك خطأ.
x— تمثيل نصي لرقم.String
NULL إذا تعذّر التحويل. Int32 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toInt32OrZero
أُضيف في: v1.1.0 على غرارtoInt32، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int32، لكنها تُرجع 0 عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toInt32OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int32، فسيحدث تجاوز سعة أو نقص تمثيل في النتيجة.
ولا يُعدّ ذلك خطأً.
x— تمثيل نصي لرقم.String
0 إذا تعذّر التحويل. Int32
أمثلة
مثال على الاستخدام
Query
Response
toInt64
أُضيف في: v1.1.0 يحوّل قيمة إدخال إلى قيمة من النوعInt64.
يطرح استثناءً في حال حدوث خطأ.
الوسائط المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt64('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int64، فقد يحدث تجاوز علوي أو سفلي في النتيجة.
ولا يُعدّ ذلك خطأً.
على سبيل المثال:
SELECT toInt64(9223372036854775808) == -9223372036854775808;تستخدم الدالة التقريب نحو الصفر، ما يعني أنها تحذف الأرقام الكسرية من الأعداد.
expr— تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم. المدعوم: القيم أو التمثيلات النصية من النوع (U)Int*، والقيم من النوع Float*. غير المدعوم: التمثيلات النصية لقيم Float*، بما في ذلك NaN وInf، والتمثيلات النصية للقيم الثنائية والسداسية العشرية.تعبير
Int64
أمثلة
مثال على الاستخدام
Query
Response
toInt64OrDefault
أُضيف في: v21.11.0 مثلtoInt64، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int64، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
البنية
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.Int64
Int64
أمثلة
تحويل ناجح
Query
Response
Query
Response
toInt64OrNull
أُضيف في: v1.1.0 مثلtoInt64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int64، لكنها تعيد NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt64OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int64، يحدث تجاوز للحد الأعلى أو الأدنى في النتيجة.
ولا يُعد ذلك خطأ.
x— تمثيل نصي لعدد.String
NULL إذا تعذر التحويل. Int64 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toInt64OrZero
قُدِّم في: v1.1.0 يحوّل قيمة إدخال إلى النوع Int64، لكنه يعيد0 في حال حدوث خطأ.
يشبه toInt64، لكنه يعيد 0 بدلًا من إطلاق استثناء.
انظر أيضًا:
الصياغة
x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأوFloat*أوDecimalأو(U)Int*أوDateأوDateTime
0 إذا فشل التحويل. Int64
أمثلة
مثال على الاستخدام
Query
Response
Query
Response
toInt8
أُضيفت في: v1.1.0 تحوّل قيمة الإدخال إلى قيمة من النوعInt8.
تُطلق استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt8('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int8، يحدث تجاوز سعة أو نقص سعة في النتيجة.
ولا يُعد ذلك خطأً.
على سبيل المثال:
SELECT toInt8(128) == -128;.تستخدم الدالة التقريب نحو الصفر، أي إنها تحذف الخانات الكسرية من الأرقام.
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
Int8
أمثلة
مثال على الاستخدام
Query
Response
toInt8OrDefault
أُضيف في: v21.11.0 مثلtoInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int8، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
الصيغة
expr—expressionيُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا لم تنجح عملية التحليل.Int8
Int8
أمثلة
تحويل ناجح
Query
Response
Query
Response
toInt8OrNull
أُضيف في: v1.1.0 مثلtoInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int8، لكنها تُرجع NULL عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل
SELECT toInt8OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int8، يحدث overflow أو underflow في النتيجة.
ولا يُعدّ ذلك خطأ.
x— تمثيل نصي لرقم.String
NULL إذا تعذّر التحويل. Int8 أو NULL
أمثلة
مثال للاستخدام
Query
Response
toInt8OrZero
أُضيف في: v1.1.0 مثلtoInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع Int8، لكنها تعيد 0 عند حدوث خطأ.
الوسائط المدعومة:
- التمثيلات النصية لقيم (U)Int*.
0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toInt8OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int8، يحدث تجاوز علوي أو سفلي في النتيجة.
ولا يُعدّ ذلك خطأ.
x— تمثيل نصي لرقم.String
Int8، وإلا فيُعيد 0 إذا لم ينجح التحويل. Int8
أمثلة
مثال على الاستخدام
Query
Response
toInterval
أُضيفت في: v25.4.0 تنشئ قيمة Interval من قيمة رقمية وسلسلة نصية للوحدة. توفّر هذه الدالة طريقة موحّدة لإنشاء فترات زمنية من أنواع مختلفة (ثوانٍ، دقائق، ساعات، أيام، أسابيع، أشهر، أرباع سنوية، سنوات) باستخدام دالة واحدة فقط، وذلك عبر تحديد الوحدة كسلسلة نصية. سلسلة الوحدة غير حساسة لحالة الأحرف. وهذا يكافئ استدعاء دوال مخصّصة لكل نوع مثلtoIntervalSecond وtoIntervalMinute وtoIntervalDay وغيرها،
لكنه يتيح تحديد الوحدة ديناميكيًا بوصفها معامل String.
الصياغة
value— القيمة الرقمية التي تمثل عدد الوحدات. يمكن أن تكون من أي نوع رقمي.Int8أوInt16أوInt32أوInt64أوUInt8أوUInt16أوUInt32أوUInt64أوFloat32أوFloat64unit— وحدة الزمن. يجب أن تكون سلسلة نصية ثابتة. القيم الصالحة هي: ‘nanosecond’ و’microsecond’ و’millisecond’ و’second’ و’minute’ و’hour’ و’day’ و’week’ و’month’ و’quarter’ و’year’.String
Interval
أمثلة
إنشاء قيم Interval بوحدات مختلفة
Query
Response
Query
Response
Query
Response
toIntervalDay
أُضيف في: v1.1.0 يُرجع فاصلًا زمنيًا منn يومًا من نوع البيانات IntervalDay.
الصياغة
n— عدد الأيام. الأعداد الصحيحة أو تمثيلاتها النصية، وكذلك الأعداد العائمة.(U)Int*أوFloat*أوString
n أيام. Interval
أمثلة
مثال على الاستخدام
Query
Response
toIntervalHour
أُضيف في: v1.1.0 يعيد interval مقدارهn ساعة من نوع البيانات IntervalHour.
الصياغة
n ساعة. Interval
أمثلة
مثال على الاستخدام
Query
Response
toIntervalMicrosecond
قُدِّم في: v22.6.0 يُرجع فاصلًا زمنيًا مقدارهn ميكروثانية من نوع البيانات IntervalMicrosecond.
الصياغة
Interval مقدارها n ميكروثانية. Interval
أمثلة
مثال على الاستخدام
Query
Response
toIntervalMillisecond
تم تقديمه في: v22.6.0 يعيد فاصلًا زمنيًا مقدارهn مللي ثانية من نوع البيانات IntervalMillisecond.
البنية
n مللي ثانية. Interval
أمثلة
مثال على الاستخدام
Query
Response
toIntervalMinute
أُضيفت في: v1.1.0 تعيد فاصلًا زمنيًا مقدارهn دقيقة من نوع البيانات IntervalMinute.
البنية
n دقيقة. Interval
أمثلة
مثال للاستخدام
Query
Response
toIntervalMonth
أُضيف في: v1.1.0 يعيد فاصلًا زمنيًا مقدارهn شهرًا من نوع البيانات IntervalMonth.
البنية
n شهرًا. Interval
أمثلة
مثال استخدام
Query
Response
toIntervalNanosecond
قُدِّم في: v22.6.0 يعيد فاصلًا زمنيًا مقدارهn نانوثانية من نوع البيانات IntervalNanosecond.
الصياغة
n نانوثانية. Interval
أمثلة
مثال استخدام
Query
Response
toIntervalQuarter
قُدِّمت في: v1.1.0 تعيد فاصلًا زمنيًا منn أرباع من نوع البيانات IntervalQuarter.
الصياغة
n من أرباع السنة. Interval
أمثلة
مثال على الاستخدام
Query
Response
toIntervalSecond
استُحدثت في: v1.1.0 تعيد قيمةinterval من n ثانية، من نوع البيانات IntervalSecond.
البنية
n— عدد الثواني. الأعداد الصحيحة أو تمثيلاتها النصية، والأعداد ذات الفاصلة العائمة.(U)Int*أوFloat*أوString
n ثانية. Interval
أمثلة
مثال على الاستخدام
Query
Response
toIntervalWeek
أُضيفت في: v1.1.0 تعيد فاصلًا زمنيًا مقدارهn أسبوعًا من نوع البيانات IntervalWeek.
الصياغة
n أسابيع. Interval
أمثلة
مثال على الاستخدام
Query
Response
toIntervalYear
أُضيف في: v1.1.0 يعيد interval منn سنة من نوع البيانات IntervalYear.
الصيغة
n سنة. Interval
أمثلة
مثال على الاستخدام
Query
Response
toLowCardinality
قُدِّم في: v18.12.0 يحوّل وسيط الإدخال إلى إصدار LowCardinality من نوع البيانات نفسه. البنيةexpr— تعبير ينتج أحد أنواع البيانات المدعومة.StringأوFixedStringأوDateأوDateTimeأو(U)Int*أوFloat*
LowCardinality. LowCardinality
أمثلة
مثال على الاستخدام
Query
Response
toString
قُدِّمت في: v1.1.0 تحوِّل القيم إلى تمثيلها النصي. وبالنسبة إلى وسيطات DateTime، يمكن أن تأخذ الدالة وسيطة String ثانية تحتوي على اسم المنطقة الزمنية. البنيةvalue— القيمة المراد تحويلها إلى سلسلة نصية.Anytimezone— اختياري. اسم المنطقة الزمنية لتحويل DateTime.String
String
أمثلة
مثال على الاستخدام
Query
Response
toStringCutToZero
أُضيفت في: v1.1.0 تقبل argument من النوع String أو FixedString، وتُرجع قيمة من النوع String تحتوي على نسخة من السلسلة الأصلية مقصوصة عند أول بايت صفري. تُعد البايتات الصفرية (\0) بمثابة مُنهِيات للسلاسل.
تكون هذه الدالة مفيدة لمعالجة السلاسل بأسلوب C أو البيانات الثنائية، حيث تشير البايتات الصفرية إلى نهاية المحتوى المفيد.
الصياغة
s— قيمة من النوع String أو FixedString المراد معالجتها.StringأوFixedString
String
أمثلة
مثال على الاستخدام
Query
Response
toTime
أُضيف في: v25.5.0 يحوّل قيمة الإدخال إلى النوع Time. يدعم التحويل من String وFixedString وDateTime وDateTime64 وTime64 أو من الأنواع الرقمية التي تمثل عدد الثواني منذ منتصف الليل. تُقيَّد القيم الرقمية الواقعة خارج نطاق النوع (-999:59:59 إلى 999:59:59، أي -3599999 إلى 3599999 ثانية) بحدود النطاق، ولا يمكن تحويل قيم الفاصلة العائمة غير المنتهية (NaN وinf و-inf) وينتج عن ذلك استثناء.
تُقرَّب قيم Time64 نزولًا نحو اللانهاية السالبة إلى ثوانٍ كاملة وتُقيَّد بالنطاق نفسه.
قبل v25.5، كانت
toTime دالة مختلفة تحوّل تاريخًا مع وقت إلى تاريخ ثابت (1970-01-02) مع الحفاظ على
مكوّن الوقت. ولا تزال تلك الدالة متاحة بالاسم toTimeWithFixedDate.يؤدي أيضًا ضبط use_legacy_to_time على 1 إلى إبقاء الاسم toTime مرتبطًا بالدالة القديمة،
أي إن استدعاءات toTime تُفسَّر على أنها toTimeWithFixedDate بدلًا من دالة التحويل الموضحة هنا.
أثناء تمكين الإعداد، استخدم CAST(x AS Time) أو x::Time للتحويل إلى النوع Time.
تكون القيمة الافتراضية للإعداد 0 منذ v26.7، لكنها كانت 1 من v25.6 إلى v26.6، ولهذا تضبطها الأمثلة أدناه صراحةً.x— قيمة الإدخال المراد تحويلها.StringأوFixedStringأوDateTimeأوDateTime64أوTime64أو(U)Int*أوBFloat16أوFloat*
Time
أمثلة
التحويل من DateTime64 إلى Time
Query
Response
Query
Response
Query
Response
toTime64
أُضيف في: v25.6.0 يحوّل قيمة الإدخال إلى النوع Time64. يدعم التحويل من String وFixedString وDateTime64 أو من الأنواع الرقمية التي تمثل الثواني منذ منتصف الليل. يوفّر دقة أقل من الثانية لقيم الوقت، حتىscale من الخانات الكسرية.
الصياغة
x— قيمة الإدخال المطلوب تحويلها.StringأوFixedStringأوDateTime64أو(U)Int*أوFloat*scale— الدقة (عدد الخانات الكسرية، من0إلى9) في قيمةTime64الناتجة.(U)Int*
scale المطلوبة. Time64
أمثلة
تحويل String إلى Time64
Query
Response
Query
Response
Query
Response
toTime64OrNull
أُضيف في: v25.6.0 يحوّل قيمة الإدخال إلى قيمة من النوعTime64، ولكنه يعيد NULL في حال حدوث خطأ.
يشبه toTime64، لكنه يعيد NULL بدلًا من طرح استثناء عند حدوث أخطاء في التحويل.
انظر أيضًا:
البنية
x— تمثيل نصي لوقت بدقة أقل من الثانية.Stringprecision— اختياري. دقة أقل من الثانية للقيمة المُعادة.UInt8
Time64 عند النجاح، وإلا NULL. Time64 أو NULL
أمثلة
مثال للاستخدام
Query
Response
toTime64OrZero
أُضيف في: v25.6.0 يحوِّل قيمة الإدخال إلى قيمة من النوعTime64، لكنه يُرجع قيمة Time64 الصفرية (00:00:00) في حال استلام وسيطة غير صالحة.
يشبه toTime64، لكنه يُرجع قيمة Time64 الصفرية في حال استلام وسيطة غير صالحة.
انظر أيضًا:
البنية
x— تمثيل نصي لوقت بدقة أقل من الثانية.Stringprecision— اختياري. دقة أقل من الثانية للقيمة المُعادة.UInt8
Time64 عند النجاح، وإلا القيمة الصفرية من النوع Time64 (00:00:00) بالدقة المطلوبة. Time64
أمثلة
مثال على الاستخدام
Query
Response
toTimeOrNull
طُرح في: v25.5.0 يحوّل قيمة الإدخال إلى قيمة من النوع Time، ولكنه يعيدNULL في حال حدوث خطأ.
يشبه toTime، لكنه يعيد NULL بدلًا من طرح استثناء عند حدوث أخطاء في التحويل.
انظر أيضًا:
بنية
x— تمثيل نصي لوقت.String
NULL. Time أو NULL
أمثلة
مثال للاستخدام
Query
Response
toTimeOrZero
استُحدث في: v25.5.0 يحوّل قيمة الإدخال إلى قيمة من النوع Time، لكنه يعيد00:00:00 في حال حدوث خطأ.
يشبه toTime، لكنه يعيد 00:00:00 بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.
بنية
x— تمثيل نصي لوقت.String
Time عند النجاح، وإلا 00:00:00.
أمثلة
مثال على الاستخدام
Query
Response
toUInt128
ظهر في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوعUInt128.
يطرح استثناءً في حال حدوث خطأ.
تستخدم الدالة التقريب باتجاه الصفر، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt128('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود UInt128، فستحدث حالة تجاوز علوي أو سفلي في النتيجة.
ولا يُعد ذلك خطأً.
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
UInt128
أمثلة
مثال على الاستخدام
Query
Response
toUInt128OrDefault
أُضيف في: v21.11.0 مثلtoUInt128، تحوّل هذه الدالة قيمة مُدخلة إلى قيمة من النوع UInt128، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
البنية
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.UInt128
UInt128
أمثلة
تحويل ناجح
Query
Response
Query
Response
toUInt128OrNull
أُضيف في: v21.6.0 على غرارtoUInt128، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt128، لكنها تُرجع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt128OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt128، يحدث overflow أو underflow في النتيجة.
ولا يُعدّ ذلك خطأً.x— تمثيل نصي لرقم.String
NULL إذا تعذّر التحويل. UInt128 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toUInt128OrZero
أُضيف في: v1.1.0 مثلtoUInt128، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt128، لكنها تُرجع 0 في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt128OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt128، يحدث تجاوز سعة أو نقص سعة في النتيجة.
ولا يُعدّ ذلك خطأً.x— تمثيل نصي لرقم.String
0 إذا فشلت عملية التحويل. UInt128
أمثلة
مثال على الاستخدام
Query
Response
toUInt16
استُحدثت في: v1.1.0 تُحوِّل قيمة إدخال إلى قيمة من النوعUInt16.
تُطلق استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والست عشرية، مثل:
SELECT toUInt16('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt16، يحدث تجاوز أو نقص في النتيجة.
ولا يُعدّ ذلك خطأً.
على سبيل المثال: SELECT toUInt16(65536) == 0;.تستخدم الدالة التقريب باتجاه الصفر، ما يعني أنها تقطع الخانات الكسرية من الأعداد.
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
UInt16
أمثلة
مثال على الاستخدام
Query
Response
toUInt16OrDefault
تم تقديمه في: v21.11.0 على غرارtoUInt16، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt16، لكنها تُرجِع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجَع القيمة 0 عند حدوث خطأ.
الصياغة
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.UInt16
UInt16
أمثلة
تحويل ناجح
Query
Response
Query
Response
toUInt16OrNull
أُضيفت في: v1.1.0 مثلtoUInt16، تحوّل هذه الدالة قيمة مُدخلة إلى قيمة من النوع UInt16، لكنها تُرجع NULL عند حدوث خطأ.
الوسائط المدعومة:
- تمثيلات نصية لقيم (U)Int8/16/32/128/256.
NULL):
- تمثيلات نصية لقيم Float*، بما في ذلك
NaNوInf. - تمثيلات نصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt16OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt16، يحدث overflow أو underflow في النتيجة.
لا يُعدّ ذلك خطأ.x— تمثيل نصي لرقم.String
UInt16، أو NULL إذا تعذّر التحويل. UInt16 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toUInt16OrZero
قُدِّمت في: v1.1.0 على غرارtoUInt16، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt16، لكنها تُرجع 0 في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int8/16/32/128/256.
0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt16OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt16، يحدث تجاوز سعة أو نقص سعة في النتيجة.
ولا يُعدّ ذلك خطأ.x— تمثيل سلسلة نصية لرقم.String
0 إذا تعذّر التحويل. UInt16
أمثلة
مثال على الاستخدام
Query
Response
toUInt256
تم تقديمها في: v1.1.0 تحوّل قيمة الإدخال إلى قيمة من النوع UInt256. تطرح استثناءً في حال حدوث خطأ. تستخدم الدالة التقريب نحو الصفر، أي إنها تحذف الخانات الكسرية من الأعداد. الوسيطات المدعومة:- القيم أو تمثيلاتها النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والست عشرية، مثل
SELECT toUInt256('0xc0fe');.
إذا تعذر تمثيل قيمة الإدخال ضمن حدود UInt256، فقد يحدث تجاوز أو نقص في السعة في النتيجة.
ولا يُعدّ ذلك خطأً.
expr— تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
UInt256
أمثلة
مثال على الاستخدام
Query
Response
toUInt256OrDefault
أُضيف في: v21.11.0 على غرارtoUInt256، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt256، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
الصياغة
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل.UInt256
UInt256
أمثلة
تحويل ناجح
Query
Response
Query
Response
toUInt256OrNull
أُضيف في: v20.8.0 مثلtoUInt256، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt256، لكنها تُرجع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والست عشرية، على سبيل المثال
SELECT toUInt256OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt256، يحدث فيض أو نقص في النتيجة.
ولا يُعدّ ذلك خطأ.x— تمثيل نصي لرقم.String
NULL إذا تعذر التحويل. UInt256 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toUInt256OrZero
أُضيف في: v20.8.0 مثلtoUInt256، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt256، لكنها تُرجع 0 عند حدوث خطأ.
الوسائط المدعومة:
- التمثيلات النصية لقيم (U)Int*.
0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt256OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt256، يحدث تجاوز أو نقص في النتيجة.
ولا يُعدّ ذلك خطأً.x— تمثيل نصي لعدد.String
UInt256، أو 0 إذا تعذّر التحويل. UInt256
أمثلة
مثال على الاستخدام
Query
Response
toUInt32
أُضيف في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوعUInt32.
يطرح استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt32('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt32، فستحدث زيادة أو نقصان خارج النطاق في النتيجة.
ولا يُعدّ ذلك خطأً.
على سبيل المثال: SELECT toUInt32(4294967296) == 0;تستخدم الدالة التقريب نحو الصفر، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
UInt32
أمثلة
مثال على الاستخدام
Query
Response
toUInt32OrDefault
أُضيف في: v21.11.0 مثلtoUInt32، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt32، لكنها تُعيد القيمة الافتراضية عند حدوث خطأ.
إذا لم تُمرَّر قيمة default، فستُعاد القيمة 0 عند حدوث خطأ.
الصيغة
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُرجع إذا تعذّر التحليل.UInt32
UInt32
أمثلة
تحويل ناجح
Query
Response
Query
Response
toUInt32OrNull
أُضيف في: v1.1.0 على غرارtoUInt32، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt32، لكنها تُرجع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int8/16/32/128/256.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt32OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt32، يحدث تجاوز سعة أو نقص سعة في النتيجة.
ولا يُعدّ ذلك خطأ.x— تمثيل نصي لعدد.String
UInt32، أو NULL إذا أخفقت عملية التحويل. UInt32 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toUInt32OrZero
قُدِّم في: v1.1.0 مثلtoUInt32، تحوّل هذه الدالة قيمة إدخال إلى قيمة من النوع UInt32، لكنها تُرجع 0 عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int8/16/32/128/256.
0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل
SELECT toUInt32OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt32، يحدث تجاوز للحد الأعلى أو الأدنى في النتيجة.
ولا يُعدّ ذلك خطأً.x— تمثيل نصي لعدد.String
0 إذا تعذّر التحويل. UInt32
أمثلة
مثال على الاستخدام
Query
Response
toUInt64
أُضيف في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوعUInt64.
يطرح استثناءً عند حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل
SELECT toUInt64('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt64، فستحدث في النتيجة حالة تجاوز علوي أو سفلي.
ولا يُعدّ ذلك خطأً.
على سبيل المثال: SELECT toUInt64(18446744073709551616) == 0;تستخدم الدالة التقريب نحو الصفر، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.تعبير
UInt64
أمثلة
مثال على الاستخدام
Query
Response
toUInt64OrDefault
قُدِّمت في: v21.11.0 مثلtoUInt64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt64، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة default، فستُرجع 0 عند حدوث خطأ.
الصيغة
expr— تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل.UInt64
UInt64
أمثلة
تحويل ناجح
Query
Response
Query
Response
toUInt64OrNull
تم تقديمه في: v1.1.0 على غرارtoUInt64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt64، ولكنها تُرجع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
NULL):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt64OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt64، يحدث overflow أو underflow في النتيجة.
ولا يُعدّ ذلك خطأً.x— تمثيل نصي لرقم.String
NULL إذا تعذّر التحويل. UInt64 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toUInt64OrZero
أُضيفت في: v1.1.0 على غرارtoUInt64، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt64، لكنها تُرجع 0 في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int*.
0):
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل
SELECT toUInt64OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt64، يحدث overflow أو underflow في النتيجة.
ولا يُعدّ ذلك خطأ.x— تمثيل نصي لعدد.String
0 إذا فشل التحويل. UInt64
أمثلة
مثال على الاستخدام
Query
Response
toUInt8
تم تقديمه في: v1.1.0 يحوّل قيمة الإدخال إلى قيمة من النوعUInt8.
يطرح استثناءً في حال حدوث خطأ.
الوسيطات المدعومة:
- القيم أو التمثيلات النصية من النوع (U)Int*.
- القيم من النوع Float*.
- التمثيلات النصية لقيم Float*، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل
SELECT toUInt8('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود UInt8، يحدث فائض أو نقص في النتيجة.
لا يُعدّ ذلك خطأً.
على سبيل المثال:
SELECT toUInt8(256) == 0;.تستخدم الدالة التقريب نحو الصفر، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
expr— تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم.تعبير
UInt8
أمثلة
مثال على الاستخدام
Query
Response
toUInt8OrDefault
قُدِّمت في: v21.11.0 على غرارtoUInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt8، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم تُمرَّر قيمة default، فستُرجِع 0 عند حدوث خطأ.
الصياغة
expr—تعبيريُرجِع رقمًا أو تمثيلًا نصيًا لرقم.Stringأو(U)Int*أوFloat*default— اختياري. القيمة الافتراضية التي تُعاد إذا فشلت عملية التحليل.UInt8
UInt8
أمثلة
تحويل ناجح
Query
Response
Query
Response
toUInt8OrNull
تم تقديمها في: v1.1.0 مثلtoUInt8، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt8، ولكنها تُرجِع NULL في حال حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لـ (U)Int8/16/32/128/256.
NULL):
- التمثيلات النصية لقيم Float* العادية، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt8OrNull('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt8، فستحدث حالة تجاوز أو نقص في النتيجة.
ولا يُعَدّ ذلك خطأً.x— تمثيل نصي لرقم.String
NULL إذا أخفق التحويل. UInt8 أو NULL
أمثلة
مثال على الاستخدام
Query
Response
toUInt8OrZero
تم تقديمها في: v1.1.0 مثلtoUInt8، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع UInt8، ولكنها تُرجع 0 عند حدوث خطأ.
الوسيطات المدعومة:
- التمثيلات النصية لقيم (U)Int8/16/32/128/256.
0):
- التمثيلات النصية لقيم Float* العادية، بما في ذلك
NaNوInf. - التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال
SELECT toUInt8OrZero('0xc0fe');.
إذا تعذّر تمثيل قيمة الإدخال ضمن حدود
UInt8، يحدث overflow أو underflow في النتيجة.
ولا يُعدّ ذلك خطأً.x— تمثيل نصي لعدد.String
UInt8، أو 0 إذا تعذر التحويل. UInt8
أمثلة
مثال على الاستخدام
Query
Response
toUUID
أُضيف في الإصدار: v1.1.0 يحوّل قيمة من النوع String إلى قيمة من النوع UUID. الصيغةstring— قيمة UUID على هيئة سلسلة نصية.StringأوFixedString
UUID
أمثلة
مثال على الاستخدام
Query
Response
toUUIDOrZero
أُضيف في: v20.12.0 يحوّل قيمة إدخال إلى قيمة من النوع UUID، لكنه يعيد UUID صفريًا في حال حدوث خطأ. وهو مشابه لـtoUUID، لكنه يعيد UUID صفريًا (00000000-0000-0000-0000-000000000000) بدلًا من طرح استثناء عند حدوث أخطاء في التحويل.
الوسيطات المدعومة:
- التمثيلات النصية لـ UUID بالتنسيق القياسي (8-4-4-4-12 رقمًا سداسيًا عشريًا).
- التمثيلات النصية لـ UUID من دون واصلات (32 رقمًا سداسيًا عشريًا).
- تنسيقات نصية غير صالحة.
- أنواع غير نصية.
x— تمثيل نصي لـ UUID.String
00000000-0000-0000-0000-000000000000). UUID
أمثلة
مثال على الاستخدام
Query
Response
toUnixTimestamp64Micro
استُحدث في: v20.5.0 يحوّلDateTime64 إلى قيمة من النوع Int64 بدقة ميكروثانية ثابتة.
تُضبط قيمة الإدخال بالزيادة أو النقصان بحسب دقتها.
قيمة الإخراج مرتبطة بـ UTC، وليس بالمنطقة الزمنية لقيمة الإدخال.
value— قيمة من النوع DateTime64 بأي درجة دقة.DateTime64
Int64
أمثلة
مثال على الاستخدام
Query
Response
toUnixTimestamp64Milli
أُضيف في: v20.5.0 يحوّلDateTime64 إلى قيمة Int64 بدقة ميلي ثانية ثابتة.
وتُزاد قيمة الإدخال أو تُخفض بالشكل المناسب وفقًا لدقتها.
تستند قيمة الإخراج إلى UTC، وليس إلى المنطقة الزمنية لقيمة الإدخال.
value— قيمة من نوع DateTime64 بأي درجة دقة.DateTime64
Int64
أمثلة
مثال على الاستخدام
Query
Response
toUnixTimestamp64Nano
أُضيف في: v20.5.0 يحوّلDateTime64 إلى قيمة Int64 بدقة نانوثانية ثابتة.
ويُزاد مقياس قيمة الإدخال أو يُخفَّض حسب دقتها.
تُحتسب قيمة الإخراج بالنسبة إلى UTC، وليس بالنسبة إلى المنطقة الزمنية لقيمة الإدخال.
value— قيمة من نوع DateTime64 بأي مستوى دقة.DateTime64
Int64
أمثلة
مثال على الاستخدام
Query
Response
toUnixTimestamp64Second
أُضيفت في: v24.12.0 يحوّل قيمةDateTime64 إلى قيمة Int64 بدقة ثابتة بالثواني.
تُزاد قيمة الإدخال أو تُخفَّض بالشكل المناسب وفقًا لدقتها.
قيمة الخرج مرتبطة بـ UTC، وليست مرتبطة بالمنطقة الزمنية لقيمة الإدخال.
value— قيمة من نوع DateTime64 بأي درجة precision.DateTime64
Int64
أمثلة
مثال استخدام
Query
Response