> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق دوال تحويل الأنواع

# دوال تحويل الأنواع

<div id="common-issues-with-data-conversion">
  ## المشكلات الشائعة في تحويل البيانات
</div>

يستخدم ClickHouse عمومًا [السلوك نفسه المستخدم في برامج C++](https://en.cppreference.com/w/cpp/language/implicit_conversion).

تختلف دوال `to<type>` و[CAST](#CAST) في سلوكهما في بعض الحالات، مثل حالة [LowCardinality](/ar/reference/data-types/lowcardinality): إذ يزيل [CAST](#CAST) السمة [LowCardinality](/ar/reference/data-types/lowcardinality)، بينما لا تفعل دوال `to<type>` ذلك. وينطبق الأمر نفسه على [Nullable](/ar/reference/data-types/nullable). هذا السلوك غير متوافق مع معيار SQL، ويمكن تغييره باستخدام الإعداد [cast\_keep\_nullable](/ar/reference/settings/session-settings#cast_keep_nullable).

<Note>
  انتبه إلى احتمال فقدان البيانات إذا جرى تحويل قيم من نوع بيانات إلى نوع أصغر (على سبيل المثال من `Int64` إلى `Int32`) أو بين
  أنواع بيانات غير متوافقة (على سبيل المثال من `String` إلى `Int`). تأكد بعناية من أن النتيجة مطابقة لما هو متوقع.
</Note>

مثال:

```sql theme={null}
SELECT
    toTypeName(toLowCardinality('') AS val) AS source_type,
    toTypeName(toString(val)) AS to_type_result_type,
    toTypeName(CAST(val, 'String')) AS cast_result_type

┌─source_type────────────┬─to_type_result_type────┬─cast_result_type─┐
│ LowCardinality(String) │ LowCardinality(String) │ String           │
└────────────────────────┴────────────────────────┴──────────────────┘

SELECT
    toTypeName(toNullable('') AS val) AS source_type,
    toTypeName(toString(val)) AS to_type_result_type,
    toTypeName(CAST(val, 'String')) AS cast_result_type

┌─source_type──────┬─to_type_result_type─┬─cast_result_type─┐
│ Nullable(String) │ Nullable(String)    │ String           │
└──────────────────┴─────────────────────┴──────────────────┘

SELECT
    toTypeName(toNullable('') AS val) AS source_type,
    toTypeName(toString(val)) AS to_type_result_type,
    toTypeName(CAST(val, 'String')) AS cast_result_type
SETTINGS cast_keep_nullable = 1

┌─source_type──────┬─to_type_result_type─┬─cast_result_type─┐
│ Nullable(String) │ Nullable(String)    │ Nullable(String) │
└──────────────────┴─────────────────────┴──────────────────┘
```

<div id="to-string-functions">
  ## ملاحظات حول دوال `toString`
</div>

تتيح عائلة الدوال `toString` التحويل بين الأرقام، والسلاسل النصية (لكن ليس السلاسل ذات الطول الثابت)، والتواريخ، والتواريخ المقترنة بوقت.
تقبل جميع هذه الدوال وسيطة واحدة.

* عند التحويل من سلسلة نصية أو إليها، تُنسَّق القيمة أو تُحلَّل وفق القواعد نفسها المستخدمة في تنسيق TabSeparated (وفي معظم تنسيقات النص الأخرى أيضًا). وإذا تعذّر تحليل السلسلة النصية، يُطرَح استثناء ويُلغى الطلب.
* عند تحويل التواريخ إلى أرقام أو العكس، يمثّل التاريخ عدد الأيام منذ بداية حقبة Unix.
* عند تحويل التواريخ المقترنة بوقت إلى أرقام أو العكس، يمثّل التاريخ مع الوقت عدد الثواني منذ بداية حقبة Unix.
* يمكن لدالة `toString` الخاصة بوسيطة `DateTime` أن تأخذ وسيطة `String` ثانية تتضمن اسم المنطقة الزمنية، على سبيل المثال: `Europe/Amsterdam`. وفي هذه الحالة، يُنسَّق الوقت وفقًا للمنطقة الزمنية المحددة.

<div id="to-date-and-date-time-functions">
  ## ملاحظات حول الدالتين `toDate`/`toDateTime`
</div>

تُعرَّف تنسيقات التاريخ والتاريخ المقترن بالوقت للدالتين `toDate`/`toDateTime` كما يلي:

```response theme={null}
YYYY-MM-DD
YYYY-MM-DD hh:mm:ss
```

كاستثناء، عند التحويل من الأنواع الرقمية UInt32 أو Int32 أو UInt64 أو Int64 إلى Date، إذا كان الرقم أكبر من أو يساوي 65536، فسيُفسَّر على أنه Unix timestamp (وليس عدد الأيام)، ويُقرَّب إلى التاريخ.
ويتيح ذلك دعم الحالة الشائعة المتمثلة في كتابة `toDate(unix_timestamp)`، التي كانت ستؤدي بخلاف ذلك إلى حدوث خطأ، وستستلزم كتابة الصيغة الأكثر تعقيدًا `toDate(toDateTime(unix_timestamp))`.

يُجرى التحويل بين التاريخ وتاريخ مع وقت بالطريقة الطبيعية: بإضافة وقت صفري أو بحذف الوقت.

يستخدم التحويل بين الأنواع الرقمية القواعد نفسها المستخدمة في الإسناد بين الأنواع الرقمية المختلفة في C++.

**مثال**

```sql title="Query" theme={null}
SELECT
    now() AS ts,
    time_zone,
    toString(ts, time_zone) AS str_tz_datetime
FROM system.time_zones
WHERE time_zone LIKE 'Europe%'
LIMIT 10
```

```response title="Response" theme={null}
┌──────────────────ts─┬─time_zone─────────┬─str_tz_datetime─────┐
│ 2023-09-08 19:14:59 │ Europe/Amsterdam  │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Andorra    │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Astrakhan  │ 2023-09-08 23:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Athens     │ 2023-09-08 22:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belfast    │ 2023-09-08 20:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belgrade   │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Berlin     │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Bratislava │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Brussels   │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Bucharest  │ 2023-09-08 22:14:59 │
└─────────────────────┴───────────────────┴─────────────────────┘
```

راجع أيضًا الدالة [`toUnixTimestamp`](/ar/reference/functions/regular-functions/date-time-functions#toUnixTimestamp).

{/*AUTOGENERATED_START*/}

<div id="CAST">
  ## CAST
</div>

أُضيف في: v1.1.0

يحوّل قيمة إلى نوع البيانات المحدد.
وعلى خلاف الدالة reinterpret، تحاول CAST إنتاج القيمة نفسها في النوع الهدف.
إذا لم يكن ذلك ممكنًا، يُرفَع استثناء.

**البنية**

```sql theme={null}
CAST(x, T)
or CAST(x AS T)
or x::T
```

**الوسائط**

* `x` — قيمة من أي نوع. [`Any`](/ar/reference/data-types/index)
* `T` — نوع البيانات الهدف. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع القيمة بعد تحويلها إلى نوع البيانات الهدف. [`Any`](/ar/reference/data-types/index)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT CAST(42, 'String')
```

```response title=Response theme={null}
┌─CAST(42, 'String')─┐
│ 42                 │
└────────────────────┘
```

**استخدام صيغة AS**

```sql title=Query theme={null}
SELECT CAST('2025-01-01' AS Date)
```

```response title=Response theme={null}
┌─CAST('2025-01-01', 'Date')─┐
│                 2025-01-01 │
└────────────────────────────┘
```

**استخدام صياغة ::**

```sql title=Query theme={null}
SELECT '123'::UInt32
```

```response title=Response theme={null}
┌─CAST('123', 'UInt32')─┐
│                   123 │
└───────────────────────┘
```

<div id="DATE">
  ## DATE
</div>

أُضيف في: v21.2.0

يحوّل الوسيط إلى نوع البيانات Date. هذا اسم مستعار للتوافق مع MySQL للدالة `toDate`، ويتصرف بالطريقة نفسها التي تتصرف بها `toDate`.

**الصيغة**

```sql theme={null}
DATE(expr)
```

**الوسيطات**

* `expr` — القيمة المراد تحويلها. [`String`](/ar/reference/data-types/string) أو [`UInt32`](/ar/reference/data-types/int-uint) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime)

**القيمة المُعادة**

تُرجع قيمة من نوع Date. [`Date`](/ar/reference/data-types/date)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT DATE('2023-01-01')
```

```response title=Response theme={null}
2023-01-01
```

<div id="accurateCast">
  ## accurateCast
</div>

أُضيف في: v1.1.0

يحوّل قيمة إلى نوع بيانات محدد. بخلاف [`CAST`](#CAST)، يُجري `accurateCast` تحقّقًا أكثر صرامة من الأنواع ويطرح استثناءً إذا كان التحويل سيؤدي إلى فقدان الدقة أو إذا لم يكن التحويل ممكنًا.

هذه الدالة أكثر أمانًا من `CAST` العادي لأنها تمنع فقدان الدقة وعمليات التحويل غير الصالحة.

**البنية**

```sql theme={null}
accurateCast(x, T)
```

**الوسيطات**

* `x` — قيمة المراد تحويلها. [`Any`](/ar/reference/data-types/index)
* `T` — اسم نوع البيانات الهدف. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

ترجع القيمة بعد تحويلها إلى نوع البيانات الهدف. [`Any`](/ar/reference/data-types/index)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT accurateCast(42, 'UInt16')
```

```response title=Response theme={null}
┌─accurateCast(42, 'UInt16')─┐
│                        42 │
└───────────────────────────┘
```

**من نص إلى رقم**

```sql title=Query theme={null}
SELECT accurateCast('123.45', 'Float64')
```

```response title=Response theme={null}
┌─accurateCast('123.45', 'Float64')─┐
│                            123.45 │
└───────────────────────────────────┘
```

<div id="accurateCastOrDefault">
  ## accurateCastOrDefault
</div>

أُضيفت في: v21.1.0

تُحوِّل قيمة إلى نوع البيانات المحدد.
تشبه [`accurateCast`](#accurateCast)، لكنها تُرجع قيمة افتراضية بدلًا من إثارة استثناء إذا تعذّر إجراء التحويل بدقة.

إذا جرى توفير قيمة افتراضية باعتبارها الوسيط الثاني، فيجب أن تكون من النوع الهدف.
إذا لم تُوفَّر قيمة افتراضية، تُستخدم القيمة الافتراضية للنوع الهدف.

**الصياغة**

```sql theme={null}
accurateCastOrDefault(x, T[, default_value])
```

**المعاملات**

* `x` — قيمة لتحويلها. [`Any`](/ar/reference/data-types/index)
* `T` — اسم نوع البيانات الهدف. [`const String`](/ar/reference/data-types/string)
* `default_value` — اختياري. القيمة الافتراضية التي تُعاد إذا فشل التحويل. [`Any`](/ar/reference/data-types/index)

**القيمة المُعادة**

تُعاد القيمة المحوَّلة إلى نوع البيانات الهدف، أو القيمة الافتراضية إذا لم يكن التحويل ممكنًا. [`Any`](/ar/reference/data-types/index)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT accurateCastOrDefault(42, 'String')
```

```response title=Response theme={null}
┌─accurateCastOrDefault(42, 'String')─┐
│ 42                                  │
└─────────────────────────────────────┘
```

**فشل التحويل مع قيمة افتراضية محددة صراحةً**

```sql title=Query theme={null}
SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32)
```

```response title=Response theme={null}
┌─accurateCastOrDefault('abc', 'UInt32', 999)─┐
│                                         999 │
└─────────────────────────────────────────────┘
```

**تعذّر التحويل مع قيمة افتراضية ضمنية**

```sql title=Query theme={null}
SELECT accurateCastOrDefault('abc', 'UInt32')
```

```response title=Response theme={null}
┌─accurateCastOrDefault('abc', 'UInt32')─┐
│                                      0 │
└────────────────────────────────────────┘
```

<div id="accurateCastOrNull">
  ## accurateCastOrNull
</div>

قُدِّمت في: v1.1.0

تحوّل قيمة إلى نوع البيانات المحدد.
وهي تشبه [`accurateCast`](#accurateCast)، لكنها تُرجع `NULL` بدلًا من طرح استثناء إذا تعذّر إجراء التحويل بدقة.

تجمع هذه الدالة بين أمان [`accurateCast`](#accurateCast) والمعالجة السلسة للأخطاء.

**الصياغة**

```sql theme={null}
accurateCastOrNull(x, T)
```

**المعاملات**

* `x` — قيمة مطلوب تحويلها. [`Any`](/ar/reference/data-types/index)
* `T` — اسم نوع البيانات الهدف. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

ترجع القيمة بعد تحويلها إلى نوع البيانات الهدف، أو `NULL` إذا تعذر التحويل. [`Any`](/ar/reference/data-types/index)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT accurateCastOrNull(42, 'String')
```

```response title=Response theme={null}
┌─accurateCastOrNull(42, 'String')─┐
│ 42                               │
└──────────────────────────────────┘
```

**عند فشل التحويل، تُرجَع القيمة NULL**

```sql title=Query theme={null}
SELECT accurateCastOrNull('abc', 'UInt32')
```

```response title=Response theme={null}
┌─accurateCastOrNull('abc', 'UInt32')─┐
│                                ᴺᵁᴸᴸ │
└─────────────────────────────────────┘
```

<div id="formatRow">
  ## formatRow
</div>

أُضيفت في: v20.7.0

يحوّل أي تعبيرات إلى سلسلة نصية باستخدام التنسيق المحدد.

<Note>
  إذا كان التنسيق يحتوي على لاحقة/بادئة، فستُكتب في كل صف.
  لا تدعم هذه الدالة إلا التنسيقات المعتمدة على الصفوف.
</Note>

**الصيغة**

```sql theme={null}
formatRow(format, x, y, ...)
```

**الوسائط**

* `format` — تنسيق نصي. على سبيل المثال: CSV وTSV. [`String`](/ar/reference/data-types/string)
* `x, y, ...` — تعبيرات. [`Any`](/ar/reference/data-types/index)

**القيمة المُعادة**

سلسلة منسّقة. (في التنسيقات النصية، تنتهي عادةً بمحرف سطر جديد). [`String`](/ar/reference/data-types/string)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT formatRow('CSV', number, 'good')
FROM numbers(3)
```

```response title=Response theme={null}
┌─formatRow('CSV', number, 'good')─┐
│ 0,"good"
                         │
│ 1,"good"
                         │
│ 2,"good"
                         │
└──────────────────────────────────┘
```

**بتنسيق مخصص**

```sql title=Query theme={null}
SELECT formatRow('CustomSeparated', number, 'good')
FROM numbers(3)
SETTINGS format_custom_result_before_delimiter='<prefix>\n', format_custom_result_after_delimiter='<suffix>'
```

```response title=Response theme={null}
┌─formatRow('CustomSeparated', number, 'good')─┐
│ <prefix>
0    good
<suffix>                   │
│ <prefix>
1    good
<suffix>                   │
│ <prefix>
2    good
<suffix>                   │
└──────────────────────────────────────────────┘
```

<div id="formatRowNoNewline">
  ## formatRowNoNewline
</div>

أُضيف في: v20.7.0

مماثل لـ [`formatRow`](#formatRow)، لكنه يزيل محرف السطر الجديد من كل صف.

يحوّل تعبيرات عشوائية إلى سلسلة نصية باستخدام التنسيق المحدد، لكنه يزيل أي محارف سطر جديد لاحقة من النتيجة.

**الصيغة**

```sql theme={null}
formatRowNoNewline(format, x, y, ...)
```

**الوسائط**

* `format` — تنسيق نصي. على سبيل المثال: CSV وTSV. [`String`](/ar/reference/data-types/string)
* `x, y, ...` — تعبيرات. [`Any`](/ar/reference/data-types/index)

**القيمة المُعادة**

تعيد سلسلة منسقة أزيلت منها فواصل الأسطر. [`String`](/ar/reference/data-types/string)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT formatRowNoNewline('CSV', number, 'good')
FROM numbers(3)
```

```response title=Response theme={null}
┌─formatRowNoNewline('CSV', number, 'good')─┐
│ 0,"good"                                  │
│ 1,"good"                                  │
│ 2,"good"                                  │
└───────────────────────────────────────────┘
```

<div id="fromUnixTimestamp64Micro">
  ## fromUnixTimestamp64Micro
</div>

استُحدث في: v20.5.0

يحوّل طابعًا زمنيًا لـ Unix بالميكروثانية إلى قيمة `DateTime64` بدقة الميكروثانية.

تُعامَل قيمة الإدخال على أنها طابع زمني لـ Unix بدقة الميكروثانية (عدد الميكروثواني منذ 1970-01-01 00:00:00 UTC).

**الصياغة**

```sql theme={null}
fromUnixTimestamp64Micro(value[, timezone])
```

**الوسائط**

* `value` — طابع زمني لـ Unix بالميكروثانية. [`Int64`](/ar/reference/data-types/int-uint)
* `timezone` — اختياري. المنطقة الزمنية للقيمة المُعادة. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة `DateTime64` بدقة ميكروثانية. [`DateTime64(6)`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT fromUnixTimestamp64Micro(1640995200123456)
```

```response title=Response theme={null}
┌─fromUnixTimestamp64Micro(1640995200123456)─┐
│                 2022-01-01 00:00:00.123456 │
└────────────────────────────────────────────┘
```

<div id="fromUnixTimestamp64Milli">
  ## fromUnixTimestamp64Milli
</div>

أُضيف في: v20.5.0

يحوّل طابعًا زمنيًا لـ Unix بالملّي ثانية إلى قيمة `DateTime64` بدقة الملّي ثانية.

تُعامَل قيمة الإدخال على أنها طابع زمني لـ Unix بدقة الملّي ثانية (عدد الملّي ثواني منذ 1970-01-01 00:00:00 UTC).

**الصياغة**

```sql theme={null}
fromUnixTimestamp64Milli(value[, timezone])
```

**الوسيطات**

* `value` — طابع زمني بنظام Unix بالمللي ثانية. [`Int64`](/ar/reference/data-types/int-uint)
* `timezone` — اختياري. المنطقة الزمنية للقيمة المعادة. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

قيمة `DateTime64` بدقة المللي ثانية. [`DateTime64(3)`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT fromUnixTimestamp64Milli(1640995200123)
```

```response title=Response theme={null}
┌─fromUnixTimestamp64Milli(1640995200123)─┐
│                 2022-01-01 00:00:00.123 │
└─────────────────────────────────────────┘
```

<div id="fromUnixTimestamp64Nano">
  ## fromUnixTimestamp64Nano
</div>

أُضيفت في: v20.5.0

تُحوِّل طابعًا زمنيًا من Unix بالنانوثانية إلى قيمة [`DateTime64`](/ar/reference/data-types/datetime64) بدقة النانوثانية.

تُعامَل قيمة الإدخال على أنها طابع زمني من Unix بدقة النانوثانية (أي عدد النانوثواني منذ 1970-01-01 00:00:00 UTC).

<Note>
  يُرجى ملاحظة أن قيمة الإدخال تُعامَل على أنها طابع زمني بتوقيت UTC، وليس وفق المنطقة الزمنية لقيمة الإدخال.
</Note>

**البنية**

```sql theme={null}
fromUnixTimestamp64Nano(value[, timezone])
```

**المعاملات**

* `value` — طابع زمني لـ Unix بالنانوثانية. [`Int64`](/ar/reference/data-types/int-uint)
* `timezone` — اختياري. المنطقة الزمنية للقيمة المُعادة. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع قيمة من النوع `DateTime64` بدقة نانوثانية. [`DateTime64(9)`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT fromUnixTimestamp64Nano(1640995200123456789)
```

```response title=Response theme={null}
┌─fromUnixTimestamp64Nano(1640995200123456789)─┐
│                2022-01-01 00:00:00.123456789 │
└──────────────────────────────────────────────┘
```

<div id="fromUnixTimestamp64Second">
  ## fromUnixTimestamp64Second
</div>

أُضيف في: v24.12.0

يحوّل طابعًا زمنيًا من Unix بالثواني إلى قيمة `DateTime64` بدقة الثواني.

تُعامَل قيمة الإدخال على أنها طابع زمني من Unix بدقة الثواني (أي عدد الثواني منذ 1970-01-01 00:00:00 UTC).

**الصيغة**

```sql theme={null}
fromUnixTimestamp64Second(value[, timezone])
```

**الوسيطات**

* `value` — طابع زمني بنظام Unix بالثواني. [`Int64`](/ar/reference/data-types/int-uint)
* `timezone` — اختياري. المنطقة الزمنية للقيمة المُعادة. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع قيمة `DateTime64` بدقة الثواني. [`DateTime64(0)`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT fromUnixTimestamp64Second(1640995200)
```

```response title=Response theme={null}
┌─fromUnixTimestamp64Second(1640995200)─┐
│                   2022-01-01 00:00:00 │
└───────────────────────────────────────┘
```

<div id="parseDateTime">
  ## parseDateTime
</div>

تم تقديمه في: v23.3.0

يُحلّل سلسلة تاريخ ووقت وفقًا لسلسلة تنسيق تاريخ خاصة بـ MySQL.

هذه الدالة هي عكس [`formatDateTime`](/ar/reference/functions/regular-functions/date-time-functions).
وهي تُحلّل وسيطًا من النوع String باستخدام سلسلة تنسيق من النوع String. وتُرجِع قيمة من النوع DateTime.

**البنية**

```sql theme={null}
parseDateTime(time_string, format[, timezone])
```

**الأسماء البديلة**: `TO_UNIXTIME`

**الوسيطات**

* `time_string` — سلسلة نصية تُحلَّل إلى DateTime. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من النوع DateTime مُحلَّلة من السلسلة النصية المُدخلة وفقًا لسلسلة تنسيق بأسلوب MySQL. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')
```

```response title=Response theme={null}
┌─parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│                                       2025-01-04 23:00:00 │
└───────────────────────────────────────────────────────────┘
```

<div id="parseDateTime32BestEffort">
  ## parseDateTime32BestEffort
</div>

أُضيف في: v20.9.0

يحوّل التمثيل النصي للتاريخ والوقت إلى نوع البيانات [`DateTime`](/ar/reference/data-types/datetime).

تحلّل الدالة تنسيقات [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) و[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55) وتنسيقات التاريخ والوقت الخاصة بـ ClickHouse، بالإضافة إلى بعض التنسيقات الأخرى.

**الصيغة**

```sql theme={null}
parseDateTime32BestEffort(time_string[, time_zone])
```

**الوسائط**

* `time_string` — قيمة من نوع String تحتوي على تاريخ ووقت لتحويلهما. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُحلَّل `time_string` وفقًا لها. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تعيد `time_string` كقيمة من نوع `DateTime`. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime32BestEffort('23/10/2025 12:12:57')
AS parseDateTime32BestEffort
```

```response title=Response theme={null}
┌─parseDateTime32BestEffort─┐
│       2025-10-23 12:12:57 │
└───────────────────────────┘
```

**مع تحديد المنطقة الزمنية**

```sql title=Query theme={null}
SELECT parseDateTime32BestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul')
AS parseDateTime32BestEffort
```

```response title=Response theme={null}
┌─parseDateTime32BestEffort─┐
│       2025-08-18 10:22:16 │
└───────────────────────────┘
```

**الطابع الزمني ليونكس**

```sql title=Query theme={null}
SELECT parseDateTime32BestEffort('1284101485')
AS parseDateTime32BestEffort
```

```response title=Response theme={null}
┌─parseDateTime32BestEffort─┐
│       2015-07-07 12:04:41 │
└───────────────────────────┘
```

<div id="parseDateTime32BestEffortOrNull">
  ## parseDateTime32BestEffortOrNull
</div>

أُضيفت في: v20.9.0

مماثلة لـ [`parseDateTime32BestEffort`](#parseDateTime32BestEffort)، باستثناء أنها تُرجِع `NULL` عند مواجهة تنسيق تاريخ يتعذّر معالجته.

**الصياغة**

```sql theme={null}
parseDateTime32BestEffortOrNull(time_string[, time_zone])
```

**الوسائط**

* `time_string` — قيمة من النوع `String` تحتوي على تاريخ ووقت لتحويلهما. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لها `time_string`. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد كائن `DateTime` مُفسَّرًا من السلسلة، أو `NULL` إذا فشل التفسير. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    parseDateTime32BestEffortOrNull('23/10/2025 12:12:57') AS valid,
    parseDateTime32BestEffortOrNull('invalid date') AS invalid
```

```response title=Response theme={null}
┌─valid───────────────┬─invalid─┐
│ 2025-10-23 12:12:57 │    ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘
```

<div id="parseDateTime32BestEffortOrZero">
  ## parseDateTime32BestEffortOrZero
</div>

أُضيفت في: v20.9.0

مطابقة لـ [`parseDateTime32BestEffort`](#parseDateTime32BestEffort)، باستثناء أنها تُرجِع تاريخًا صفريًا أو قيمة تاريخ ووقت صفرية عند مصادفة تنسيق تاريخ يتعذر معالجته.

**البنية**

```sql theme={null}
parseDateTime32BestEffortOrZero(time_string[, time_zone])
```

**الوسائط**

* `time_string` — سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لها `time_string`. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد كائن `DateTime` ناتجًا عن تحليل السلسلة، أو التاريخ الصفري (`1970-01-01 00:00:00`) إذا فشلت عملية التحليل. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    parseDateTime32BestEffortOrZero('23/10/2025 12:12:57') AS valid,
    parseDateTime32BestEffortOrZero('invalid date') AS invalid
```

```response title=Response theme={null}
┌─valid───────────────┬─invalid─────────────┐
│ 2025-10-23 12:12:57 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘
```

<div id="parseDateTime64">
  ## parseDateTime64
</div>

أُضيف في: v24.11.0

يُحلِّل سلسلة تاريخ ووقت بدقة أجزاء من الثانية وفقًا لسلسلة تنسيق تاريخ MySQL.

هذه الدالة هي المعكوس لـ [`formatDateTime`](/ar/reference/functions/regular-functions/date-time-functions) لـ DateTime64.
وهي تُحلِّل وسيطة من النوع String باستخدام String للتنسيق. وتُرجع نوع DateTime64 يمكنه تمثيل التواريخ من 1900 إلى 2299 بدقة أجزاء من الثانية.

**الصيغة**

```sql theme={null}
parseDateTime64(time_string, format[, timezone])
```

**الوسيطات**

* `time_string` — سلسلة نصية يُراد تحليلها إلى DateTime64. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة DateTime64 مُحلَّلة من سلسلة الإدخال وفق سلسلة تنسيق بأسلوب MySQL. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')
```

```response title=Response theme={null}
┌─parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│                                       2025-01-04 23:00:00.123       │
└─────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTime64BestEffort">
  ## parseDateTime64BestEffort
</div>

أُضيف في: v20.1.0

تماثل الدالة [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)، لكنها تُحلِّل أيضًا المللي ثانية والميكروثانية وتُرجع نوع البيانات [`DateTime64`](/ar/reference/data-types/datetime64).

**البنية**

```sql theme={null}
parseDateTime64BestEffort(time_string[, precision[, time_zone]])
```

**المعاملات**

* `time_string` — قيمة من نوع `String` تحتوي على تاريخ أو تاريخ ووقت لتحويله. [`String`](/ar/reference/data-types/string)
* `precision` — اختياري. الدقة المطلوبة. `3` للملّي ثانية، و`6` للميكروثانية. القيمة الافتراضية: `3`. [`UInt8`](/ar/reference/data-types/int-uint)
* `time_zone` — اختياري. المنطقة الزمنية. تحلّل الدالة `time_string` وفقًا للمنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد `time_string` بعد تحويله إلى نوع البيانات [`DateTime64`](/ar/reference/data-types/datetime64). [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64BestEffort('2025-01-01') AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346') AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346',6) AS a, toTypeName(a) AS t
UNION ALL
SELECT parseDateTime64BestEffort('2025-01-01 01:01:00.12346',3,'Asia/Istanbul') AS a, toTypeName(a) AS t
FORMAT PrettyCompactMonoBlock
```

```response title=Response theme={null}
┌──────────────────────────a─┬─t──────────────────────────────┐
│ 2025-01-01 01:01:00.123000 │ DateTime64(3)                  │
│ 2025-01-01 00:00:00.000000 │ DateTime64(3)                  │
│ 2025-01-01 01:01:00.123460 │ DateTime64(6)                  │
│ 2025-12-31 22:01:00.123000 │ DateTime64(3, 'Asia/Istanbul') │
└────────────────────────────┴────────────────────────────────┘
```

<div id="parseDateTime64BestEffortOrNull">
  ## parseDateTime64BestEffortOrNull
</div>

مُتاحة منذ: v20.1.0

مطابقة للدالة [`parseDateTime64BestEffort`](#parseDateTime64BestEffort)، إلا أنها تُرجع `NULL` عند مواجهة تنسيق تاريخ يتعذر معالجته.

**الصياغة**

```sql theme={null}
parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]])
```

**الوسيطات**

* `time_string` — قيمة `String` تحتوي على تاريخ أو تاريخ مع وقت لتحويله. [`String`](/ar/reference/data-types/string)
* `precision` — اختياري. الدقة المطلوبة. `3` للملّي ثانية و`6` للميكروثانية. القيمة الافتراضية: `3`. [`UInt8`](/ar/reference/data-types/int-uint)
* `time_zone` — اختياري. المنطقة الزمنية. تُحلِّل الدالة `time_string` وفقًا للمنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد `time_string` بعد تحويله إلى [`DateTime64`](/ar/reference/data-types/datetime64)، أو `NULL` إذا تعذّر تحليل الإدخال. [`DateTime64`](/ar/reference/data-types/datetime64) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64BestEffortOrNull('2025-01-01 01:01:00.123') AS valid,
       parseDateTime64BestEffortOrNull('invalid') AS invalid
```

```response title=Response theme={null}
┌─valid───────────────────┬─invalid─┐
│ 2025-01-01 01:01:00.123 │    ᴺᵁᴸᴸ │
└─────────────────────────┴─────────┘
```

<div id="parseDateTime64BestEffortOrZero">
  ## parseDateTime64BestEffortOrZero
</div>

قُدِّم في: v20.1.0

مماثلة لـ [`parseDateTime64BestEffort`](#parseDateTime64BestEffort)، إلا أنها تُرجع تاريخًا صفريًا أو تاريخًا ووقتًا صفريين عند مصادفة تنسيق تاريخ يتعذر معالجته.

**الصياغة**

```sql theme={null}
parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]])
```

**الوسيطات**

* `time_string` — قيمة من نوع String تحتوي على تاريخ أو تاريخ مع وقت لتحويله. [`String`](/ar/reference/data-types/string)
* `precision` — اختياري. الدقة المطلوبة. `3` للمللي ثانية، و`6` للميكروثانية. القيمة الافتراضية: `3`. [`UInt8`](/ar/reference/data-types/int-uint)
* `time_zone` — اختياري. المنطقة الزمنية. تحلّل الدالة `time_string` وفقًا للمنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تعيد `time_string` بعد تحويله إلى [`DateTime64`](/ar/reference/data-types/datetime64)، أو التاريخ/التاريخ والوقت الصفري (`1970-01-01 00:00:00.000`) إذا تعذّر تحليل الإدخال. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64BestEffortOrZero('2025-01-01 01:01:00.123') AS valid,
       parseDateTime64BestEffortOrZero('invalid') AS invalid
```

```response title=Response theme={null}
┌─valid───────────────────┬─invalid─────────────────┐
│ 2025-01-01 01:01:00.123 │ 1970-01-01 00:00:00.000 │
└─────────────────────────┴─────────────────────────┘
```

<div id="parseDateTime64BestEffortUS">
  ## parseDateTime64BestEffortUS
</div>

تم تقديمها في: v22.8.0

مماثلة لـ [`parseDateTime64BestEffort`](#parseDateTime64BestEffort)، باستثناء أن هذه الدالة تُفضّل تنسيق التاريخ الأمريكي (`MM/DD/YYYY` وما إلى ذلك) عند وجود التباس.

**البنية**

```sql theme={null}
parseDateTime64BestEffortUS(time_string [, precision [, time_zone]])
```

**الوسيطات**

* `time_string` — `String` يحتوي على تاريخ أو تاريخ يتضمن وقتًا لتحويله. [`String`](/ar/reference/data-types/string)
* `precision` — اختياري. الدقة المطلوبة. `3` للملّي ثانية، و`6` للميكروثانية. الافتراضي: `3`. [`UInt8`](/ar/reference/data-types/int-uint)
* `time_zone` — اختياري. المنطقة الزمنية. تحلّل الدالة `time_string` وفقًا للمنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد `time_string` بعد تحويله إلى [`DateTime64`](/ar/reference/data-types/datetime64) مع تفضيل تنسيق التاريخ الأمريكي في الحالات الملتبسة. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64BestEffortUS('02/10/2025 12:30:45.123') AS us_format,
       parseDateTime64BestEffortUS('15/08/2025 10:15:30.456') AS fallback_to_standard
```

```response title=Response theme={null}
┌─us_format───────────────┬─fallback_to_standard────┐
│ 2025-02-10 12:30:45.123 │ 2025-08-15 10:15:30.456 │
└─────────────────────────┴─────────────────────────┘
```

<div id="parseDateTime64BestEffortUSOrNull">
  ## parseDateTime64BestEffortUSOrNull
</div>

أُضيفت في: v22.8.0

مماثلة لـ [`parseDateTime64BestEffort`](#parseDateTime64BestEffort)، باستثناء أن هذه الدالة تفضّل تنسيق التاريخ الأمريكي (`MM/DD/YYYY` وما إلى ذلك) عند وجود التباس، وتُرجع `NULL` إذا صادفت تنسيق تاريخ لا يمكن معالجته.

**البنية**

```sql theme={null}
parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]])
```

**الوسيطات**

* `time_string` — قيمة `String` تحتوي على تاريخ أو تاريخًا مع وقت لتحويله. [`String`](/ar/reference/data-types/string)
* `precision` — اختياري. الدقة المطلوبة. `3` للميلي ثانية، و`6` للميكروثانية. القيمة الافتراضية: `3`. [`UInt8`](/ar/reference/data-types/int-uint)
* `time_zone` — اختياري. المنطقة الزمنية. تُحلِّل الدالة `time_string` وفقًا للمنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد `time_string` بعد تحويله إلى [`DateTime64`](/ar/reference/data-types/datetime64) مع تفضيل التنسيق الأمريكي، أو `NULL` إذا تعذر تحليل الإدخال. [`DateTime64`](/ar/reference/data-types/datetime64) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us,
       parseDateTime64BestEffortUSOrNull('invalid') AS invalid
```

```response title=Response theme={null}
┌─valid_us────────────────┬─invalid─┐
│ 2025-02-10 12:30:45.123 │    ᴺᵁᴸᴸ │
└─────────────────────────┴─────────┘
```

<div id="parseDateTime64BestEffortUSOrZero">
  ## parseDateTime64BestEffortUSOrZero
</div>

أُضيف في: v22.8.0

مماثلة لـ [`parseDateTime64BestEffort`](#parseDateTime64BestEffort)، باستثناء أن هذه الدالة تفضّل تنسيق التاريخ الأمريكي (`MM/DD/YYYY` وما إلى ذلك) عند وجود التباس، وتُرجع التاريخ الصفري أو التاريخ والوقت الصفري إذا صادفت تنسيق تاريخ يتعذّر معالجته.

**الصياغة**

```sql theme={null}
parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]])
```

**الوسيطات**

* `time_string` — قيمة `String` تحتوي على تاريخ أو تاريخ مع وقت لتحويله. [`String`](/ar/reference/data-types/string)
* `precision` — اختياري. الدقة المطلوبة. `3` للميلي ثانية، و`6` للميكروثانية. القيمة الافتراضية: `3`. [`UInt8`](/ar/reference/data-types/int-uint)
* `time_zone` — اختياري. المنطقة الزمنية. تُحلِّل الدالة `time_string` وفقًا للمنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد `time_string` بعد تحويله إلى [`DateTime64`](/ar/reference/data-types/datetime64) باستخدام تفضيل التنسيق الأمريكي، أو قيمة التاريخ/التاريخ والوقت الصفرية (`1970-01-01 00:00:00.000`) إذا تعذّر تحليل الإدخال. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64BestEffortUSOrZero('02/10/2025 12:30:45.123') AS valid_us,
       parseDateTime64BestEffortUSOrZero('invalid') AS invalid
```

```response title=Response theme={null}
┌─valid_us────────────────┬─invalid─────────────────┐
│ 2025-02-10 12:30:45.123 │ 1970-01-01 00:00:00.000 │
└─────────────────────────┴─────────────────────────┘
```

<div id="parseDateTime64InJodaSyntax">
  ## parseDateTime64InJodaSyntax
</div>

أُضيف في: v24.10.0

يُحلِّل سلسلة تاريخ ووقت بدقة أجزاء من الثانية وفقًا لسلسلة تنسيق تاريخ Joda.

هذه الدالة هي معكوس [`formatDateTimeInJodaSyntax`](/ar/reference/functions/regular-functions/date-time-functions#formatDateTimeInJodaSyntax) لـ DateTime64.
تُحلِّل وسيطًا من النوع String باستخدام سلسلة تنسيق بأسلوب Joda. وتُرجع نوع DateTime64، الذي يمكنه تمثيل التواريخ من 1900 إلى 2299 بدقة أجزاء من الثانية.

راجِع [توثيق Joda Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) للاطلاع على أنماط التنسيق.

**البنية**

```sql theme={null}
parseDateTime64InJodaSyntax(time_string, format[, timezone])
```

**الوسائط**

* `time_string` — قيمة `String` المراد تحليلها إلى DateTime64. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق بصياغة Joda تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من النوع DateTime64 جرى تحليلها من سلسلة الإدخال وفقًا لسلسلة التنسيق بأسلوب Joda. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال استخدام**

```sql title=Query theme={null}
SELECT parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')
```

```response title=Response theme={null}
┌─parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│                                                          2025-01-04 23:00:00.123   │
└────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTime64InJodaSyntaxOrNull">
  ## parseDateTime64InJodaSyntaxOrNull
</div>

أُضيف في: v24.10.0

مماثلة لـ [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax)، لكنها تُرجع `NULL` عند مواجهة تنسيق تاريخ يتعذّر تحليله.

**الصيغة**

```sql theme={null}
parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone])
```

**المعاملات**

* `time_string` — سلسلة نصية لتحليلها إلى DateTime64. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق بصيغة Joda تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة DateTime64 مُحلَّلة من سلسلة الإدخال، أو NULL إذا فشل التحليل. [`Nullable(DateTime64)`](/ar/reference/data-types/nullable)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')
```

```response title=Response theme={null}
┌─parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│                                                             2025-01-04 23:00:00.123      │
└──────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTime64InJodaSyntaxOrZero">
  ## parseDateTime64InJodaSyntaxOrZero
</div>

أُضيف في: v24.10.0

مثل [`parseDateTime64InJodaSyntax`](#parseDateTime64InJodaSyntax)، لكنها تُرجع التاريخ الصفري عند مواجهة تنسيق تاريخ غير قابل للتحليل.

**الصياغة**

```sql theme={null}
parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone])
```

**الوسيطات**

* `time_string` — سلسلة نصية لتحليلها إلى DateTime64. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق بصياغة Joda تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد قيمة DateTime64 جرى تحليلها من سلسلة الإدخال، أو قيمة DateTime64 صفرية إذا فشل التحليل. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')
```

```response title=Response theme={null}
┌─parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│                                                              2025-01-04 23:00:00.123     │
└──────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTime64OrNull">
  ## parseDateTime64OrNull
</div>

أُضيفت في: v24.11.0

مماثلة لـ [`parseDateTime64`](#parseDateTime64)، ولكنها تُرجع `NULL` عند مصادفة تنسيق تاريخ يتعذّر تحليله.

**البنية**

```sql theme={null}
parseDateTime64OrNull(time_string, format[, timezone])
```

**الوسيطات**

* `time_string` — سلسلة نصية تُحلَّل إلى DateTime64. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة DateTime64 مُحلَّلة من سلسلة الإدخال، أو NULL إذا تعذّر التحليل. [`Nullable(DateTime64)`](/ar/reference/data-types/nullable)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')
```

```response title=Response theme={null}
┌─parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│                                            2025-01-04 23:00:00.123        │
└───────────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTime64OrZero">
  ## parseDateTime64OrZero
</div>

أُضيف في: v24.11.0

مماثلة لـ [`parseDateTime64`](#parseDateTime64)، لكنها تُرجع تاريخًا صفريًا عند مواجهة تنسيق تاريخ يتعذر تحليله.

**البنية**

```sql theme={null}
parseDateTime64OrZero(time_string, format[, timezone])
```

**الوسائط**

* `time_string` — سلسلة نصية تُحلَّل إلى DateTime64. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق تحدد كيفية تحليل `time&#95;string`. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تُرجِع قيمة DateTime64 مُحلَّلة من السلسلة النصية المُدخلة، أو قيمة DateTime64 صفرية إذا فشل التحليل. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')
```

```response title=Response theme={null}
┌─parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│                                             2025-01-04 23:00:00.123       │
└───────────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTimeBestEffort">
  ## parseDateTimeBestEffort
</div>

أُضيف في: v1.1.0

يحوِّل قيمة تاريخ ووقت بصيغة String إلى نوع البيانات DateTime.
تُحلِّل الدالة مواصفة التاريخ والوقت [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html)، و[RFC 1123 - 5.2.14 RFC-822](https://datatracker.ietf.org/doc/html/rfc822)، وتنسيقات التاريخ والوقت الخاصة بـ 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`.

بالنسبة إلى جميع التنسيقات التي تحتوي على فاصل، تُحلِّل الدالة أسماء الأشهر المكتوبة باسمها الكامل أو بأول ثلاثة أحرف من اسم الشهر.
إذا لم تُحدَّد السنة، فتُعتبر مساوية للسنة الحالية.

**البنية**

```sql theme={null}
parseDateTimeBestEffort(time_string[, time_zone])
```

**الوسائط**

* `time_string` — سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُحلَّل `time_string` وفقًا لها. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد `time_string` على هيئة `DateTime`. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort
```

```response title=Response theme={null}
┌─parseDateTimeBestEffort─┐
│     2025-10-23 12:12:57 │
└─────────────────────────┘
```

**مع تحديد المنطقة الزمنية**

```sql title=Query theme={null}
SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') AS parseDateTimeBestEffort
```

```response title=Response theme={null}
┌─parseDateTimeBestEffort─┐
│     2025-08-18 10:22:16 │
└─────────────────────────┘
```

**الطابع الزمني في Unix**

```sql title=Query theme={null}
SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort
```

```response title=Response theme={null}
┌─parseDateTimeBestEffort─┐
│     2025-01-01 00:00:00 │
└─────────────────────────┘
```

<div id="parseDateTimeBestEffortOrNull">
  ## parseDateTimeBestEffortOrNull
</div>

أُضيفت في: v1.1.0

هي مثل [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) تمامًا، باستثناء أنها تُرجع `NULL` عندما تصادف تنسيق تاريخ يتعذر معالجته.
تحلّل الدالة [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) و[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55) وتنسيقات التاريخ والوقت الخاصة بـ 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`.

بالنسبة إلى جميع التنسيقات التي تتضمن فاصلًا، تحلّل الدالة أسماء الأشهر المكتوبة باسمها الكامل أو بأول ثلاثة أحرف من اسم الشهر.
إذا لم تُحدَّد السنة، فتُعد مساوية للسنة الحالية.

**البنية**

```sql theme={null}
parseDateTimeBestEffortOrNull(time_string[, time_zone])
```

**الوسيطات**

* `time_string` — سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُفسَّر `time_string` وفقًا لها. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد `time_string` كقيمة من النوع DateTime، أو `NULL` إذا تعذر تفسير المُدخل. [`DateTime`](/ar/reference/data-types/datetime) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid,
       parseDateTimeBestEffortOrNull('invalid') AS invalid
```

```response title=Response theme={null}
┌─valid───────────────┬─invalid─┐
│ 2025-10-23 12:12:57 │    ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘
```

<div id="parseDateTimeBestEffortOrZero">
  ## parseDateTimeBestEffortOrZero
</div>

قُدِّمت في: v1.1.0

مماثلة لـ [`parseDateTimeBestEffort`](#parseDateTimeBestEffort)، باستثناء أنها تُرجع zero date أو zero date time عند مصادفة تنسيق تاريخ يتعذر معالجته.
تحلّل الدالة [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) و[RFC 1123 - 5.2.14 RFC-822 Date and Time Specification](https://tools.ietf.org/html/rfc1123#page-55) وتنسيقات التاريخ والوقت الخاصة بـ 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`.

بالنسبة إلى جميع التنسيقات التي تتضمن فاصلًا، تحلّل الدالة أسماء الأشهر المكتوبة إما بصيغتها الكاملة أو بأول ثلاثة أحرف منها.
إذا لم تُحدَّد السنة، فتُعتبر السنة الحالية.

**الصيغة**

```sql theme={null}
parseDateTimeBestEffortOrZero(time_string[, time_zone])
```

**المعاملات**

* `time_string` — سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُحلَّل `time_string` وفقًا لها. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يُرجع `time_string` كـ `DateTime`، أو تاريخًا/تاريخًا ووقتًا صفريًا (`1970-01-01` أو `1970-01-01 00:00:00`) إذا تعذّر تحليل المُدخل. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeBestEffortOrZero('23/10/2025 12:12:57') AS valid,
       parseDateTimeBestEffortOrZero('invalid') AS invalid
```

```response title=Response theme={null}
┌─valid───────────────┬─invalid─────────────┐
│ 2025-10-23 12:12:57 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘
```

<div id="parseDateTimeBestEffortUS">
  ## parseDateTimeBestEffortUS
</div>

تم تقديمه في: v1.1.0

تعمل هذه الدالة مثل [`parseDateTimeBestEffort`](#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`](#parseDateTimeBestEffort). فعلى سبيل المثال، يُفسَّر `15/08/2020` على أنه `2020-08-15`.

**البنية**

```sql theme={null}
parseDateTimeBestEffortUS(time_string[, time_zone])
```

**الوسيطات**

* `time_string` — قيمة `String` تحتوي على تاريخ ووقت لتحويله. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُحلَّل `time_string` على أساسها. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد `time_string` كقيمة `DateTime` مع تفضيل تنسيق التاريخ الأمريكي في الحالات الملتبسة. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeBestEffortUS('02/10/2025') AS us_format,
       parseDateTimeBestEffortUS('15/08/2025') AS fallback_to_standard
```

```response title=Response theme={null}
┌─us_format───────────┬─fallback_to_standard─┐
│ 2025-02-10 00:00:00 │  2025-08-15 00:00:00 │
└─────────────────────┴──────────────────────┘
```

<div id="parseDateTimeBestEffortUSOrNull">
  ## parseDateTimeBestEffortUSOrNull
</div>

تم تقديمها في: v1.1.0

مماثلة للدالة [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS)، باستثناء أنها تُرجع `NULL` عندما تصادف تنسيق تاريخ يتعذر معالجته.

تتصرف هذه الدالة مثل [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) مع تنسيقات تاريخ ISO، لكنها تفضّل تنسيق التاريخ الأمريكي في الحالات الملتبسة، مع إرجاع `NULL` عند حدوث أخطاء في التحليل.

**البنية**

```sql theme={null}
parseDateTimeBestEffortUSOrNull(time_string[, time_zone])
```

**الوسيطات**

* `time_string` — سلسلة نصية تحتوي على تاريخ ووقت لتحويلهما. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُحلَّل `time_string` وفقًا لها. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد `time_string` كقيمة من نوع DateTime باستخدام تفضيل التنسيق الأمريكي، أو `NULL` إذا تعذّر تحليل الإدخال. [`DateTime`](/ar/reference/data-types/datetime) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeBestEffortUSOrNull('02/10/2025') AS valid_us,
       parseDateTimeBestEffortUSOrNull('invalid') AS invalid
```

```response title=Response theme={null}
┌─valid_us────────────┬─invalid─┐
│ 2025-02-10 00:00:00 │    ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘
```

<div id="parseDateTimeBestEffortUSOrZero">
  ## parseDateTimeBestEffortUSOrZero
</div>

أُضيفت في: v1.1.0

هي مماثلة للدالة [`parseDateTimeBestEffortUS`](#parseDateTimeBestEffortUS)، باستثناء أنها تُرجِع تاريخًا صفريًا (`1970-01-01`) أو تاريخًا صفريًا مع وقت (`1970-01-01 00:00:00`) عند مواجهة تنسيق تاريخ يتعذر معالجته.

تعمل هذه الدالة مثل [`parseDateTimeBestEffort`](#parseDateTimeBestEffort) مع تنسيقات تاريخ ISO، لكنها تُفضّل تنسيق التاريخ الأمريكي في الحالات الملتبسة، وتُرجِع قيمة صفرية عند حدوث أخطاء في التحليل.

**البنية**

```sql theme={null}
parseDateTimeBestEffortUSOrZero(time_string[, time_zone])
```

**الوسيطات**

* `time_string` — قيمة من النوع `String` تحتوي على تاريخ ووقت لتحويلهما. [`String`](/ar/reference/data-types/string)
* `time_zone` — اختياري. المنطقة الزمنية التي يُفسَّر وفقًا لها `time_string`. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تُعيد `time_string` على هيئة `DateTime` مع تفضيل التنسيق الأمريكي، أو التاريخ/التاريخ والوقت الصفري (`1970-01-01` أو `1970-01-01 00:00:00`) إذا تعذّر تفسير الإدخال. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeBestEffortUSOrZero('02/10/2025') AS valid_us,
       parseDateTimeBestEffortUSOrZero('invalid') AS invalid
```

```response title=Response theme={null}
┌─valid_us────────────┬─invalid─────────────┐
│ 2025-02-10 00:00:00 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘
```

<div id="parseDateTimeInJodaSyntax">
  ## parseDateTimeInJodaSyntax
</div>

قُدِّمت في: v23.3.0

تحلّل سلسلة تاريخ ووقت وفقًا لـ date format string بنمط Joda.

هذه الدالة هي معكوس [`formatDateTimeInJodaSyntax`](/ar/reference/functions/regular-functions/date-time-functions#formatDateTimeInJodaSyntax).
وهي تحلّل String argument باستخدام format String بنمط Joda. وتُرجِع نوع DateTime.

ارجع إلى [توثيق Joda Time](https://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) للاطلاع على أنماط التنسيق.

**البنية**

```sql theme={null}
parseDateTimeInJodaSyntax(time_string, format[, timezone])
```

**المعاملات**

* `time_string` — سلسلة نصية تُحلَّل إلى DateTime. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق ببنية Joda تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد قيمة DateTime بعد تحليل سلسلة الإدخال النصية وفق سلسلة التنسيق بنمط Joda. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')
```

```response title=Response theme={null}
┌─parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│                                                      2025-01-04 23:00:00 │
└──────────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTimeInJodaSyntaxOrNull">
  ## parseDateTimeInJodaSyntaxOrNull
</div>

أُضيفت في: v23.3.0

مماثلة لـ [`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax)، لكنها تُرجِع `NULL` عند مصادفة تنسيق تاريخ يتعذر تحليله.

**البنية**

```sql theme={null}
parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone])
```

**الوسيطات**

* `time_string` — قيمة String المطلوب تحليلها إلى DateTime. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق ببناء جملة Joda تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يُرجع قيمة DateTime مُحلَّلة من سلسلة الإدخال، أو NULL إذا فشل التحليل. [`Nullable(DateTime)`](/ar/reference/data-types/nullable)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')
```

```response title=Response theme={null}
┌─parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│                                                         2025-01-04 23:00:00    │
└────────────────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTimeInJodaSyntaxOrZero">
  ## parseDateTimeInJodaSyntaxOrZero
</div>

قُدِّم في: v23.3.0

مماثلة لـ [`parseDateTimeInJodaSyntax`](#parseDateTimeInJodaSyntax)، لكنها تُرجع التاريخ الصفري عند مواجهة تنسيق تاريخ يتعذر تحليله.

**الصياغة**

```sql theme={null}
parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone])
```

**الوسيطات**

* `time_string` — سلسلة نصية المطلوب تحليلها إلى DateTime. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق ببناء جملة Joda تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد قيمة DateTime ناتجة عن تحليل سلسلة الإدخال، أو قيمة DateTime صفرية إذا فشل التحليل. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')
```

```response title=Response theme={null}
┌─parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│                                                          2025-01-04 23:00:00   │
└────────────────────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTimeOrNull">
  ## parseDateTimeOrNull
</div>

أُضيفت في: v23.3.0

مثل [`parseDateTime`](#parseDateTime)، لكنها تُرجع `NULL` عند مواجهة تنسيق تاريخ يتعذر تحليله.

**البنية**

```sql theme={null}
parseDateTimeOrNull(time_string, format[, timezone])
```

**الأسماء البديلة**: `str_to_date`

**المعاملات**

* `time_string` — سلسلة نصية يُراد تحليلها إلى DateTime. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة DateTime مُحلَّلة من سلسلة الإدخال، أو NULL إذا تعذّر التحليل. [`Nullable(DateTime)`](/ar/reference/data-types/nullable)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')
```

```response title=Response theme={null}
┌─parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│                                            2025-01-04 23:00:00  │
└─────────────────────────────────────────────────────────────────┘
```

<div id="parseDateTimeOrZero">
  ## parseDateTimeOrZero
</div>

استُحدث في: v23.3.0

مماثلة لـ [`parseDateTime`](#parseDateTime)، لكنها تُرجع التاريخ الصفري عند مصادفة تنسيق تاريخ غير قابل للتحليل.

**الصياغة**

```sql theme={null}
parseDateTimeOrZero(time_string, format[, timezone])
```

**الوسيطات**

* `time_string` — سلسلة نصية مطلوب تحليلها إلى DateTime. [`String`](/ar/reference/data-types/string)
* `format` — سلسلة تنسيق تحدد كيفية تحليل time\_string. [`String`](/ar/reference/data-types/string)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة DateTime ناتجة عن تحليل سلسلة الإدخال، أو zero DateTime إذا فشل التحليل. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')
```

```response title=Response theme={null}
┌─parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│                                             2025-01-04 23:00:00 │
└─────────────────────────────────────────────────────────────────┘
```

<div id="reinterpret">
  ## reinterpret
</div>

قُدِّمت في: v1.1.0

تستخدم نفس تسلسل بايتات المصدر في الذاكرة للقيمة المعطاة `x`، وتُعيد تفسيره كنوع الوجهة.

**البنية**

```sql theme={null}
reinterpret(x, type)
```

**الوسائط**

* `x` — أي نوع. [`Any`](/ar/reference/data-types/index)
* `type` — النوع الهدف. إذا كان مصفوفة، فيجب أن يكون نوع عناصر المصفوفة من الأنواع ذات الطول الثابت. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

قيمة من النوع الهدف. [`Any`](/ar/reference/data-types/index)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT reinterpret(toInt8(-1), 'UInt8') AS int_to_uint,
    reinterpret(toInt8(1), 'Float32') AS int_to_float,
    reinterpret('1', 'UInt32') AS string_to_int
```

```response title=Response theme={null}
┌─int_to_uint─┬─int_to_float─┬─string_to_int─┐
│         255 │        1e-45 │            49 │
└─────────────┴──────────────┴───────────────┘
```

**مثال على النوع Array**

```sql title=Query theme={null}
SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS string_to_array_of_Float32
```

```response title=Response theme={null}
┌─string_to_array_of_Float32─┐
│ [5.626,6.626,5.626,6.626]  │
└────────────────────────────┘
```

<div id="reinterpretAsDate">
  ## reinterpretAsDate
</div>

قُدِّم في: v1.1.0

يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Date (بافتراض ترتيب البايتات little endian)، وهي عدد الأيام منذ بداية Unix epoch ‏1970-01-01

**البنية**

```sql theme={null}
reinterpretAsDate(x)
```

**الوسيطات**

* `x` — عدد الأيام منذ بداية حقبة Unix. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المعادة**

Date. [`Date`](/ar/reference/data-types/date)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT reinterpretAsDate(65), reinterpretAsDate('A')
```

```response title=Response theme={null}
┌─reinterpretAsDate(65)─┬─reinterpretAsDate('A')─┐
│            1970-03-07 │             1970-03-07 │
└───────────────────────┴────────────────────────┘
```

<div id="reinterpretAsDateTime">
  ## reinterpretAsDateTime
</div>

أُضيف في: v1.1.0

يعيد تفسير قيمة الإدخال على أنها قيمة من نوع DateTime (على افتراض ترتيب little endian)، وهي عدد الأيام منذ بداية حقبة Unix ‏1970-01-01

**الصياغة**

```sql theme={null}
reinterpretAsDateTime(x)
```

**الوسائط**

* `x` — عدد الثواني منذ بداية حقبة يونكس. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المعادة**

التاريخ والوقت. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A')
```

```response title=Response theme={null}
┌─reinterpretAsDateTime(65)─┬─reinterpretAsDateTime('A')─┐
│       1970-01-01 01:01:05 │        1970-01-01 01:01:05 │
└───────────────────────────┴────────────────────────────┘
```

<div id="reinterpretAsFixedString">
  ## reinterpretAsFixedString
</div>

تم تقديمه في: v1.1.0

يعيد تفسير قيمة الإدخال على أنها سلسلة ثابتة الطول (بافتراض ترتيب البايتات little endian).
يُتجاهَل بايت NULL في النهاية، فعلى سبيل المثال، تُرجِع الدالة للقيمة 255 من النوع UInt32 سلسلةً تحتوي على محرف واحد.

**البنية**

```sql theme={null}
reinterpretAsFixedString(x)
```

**الوسائط**

* `x` — القيمة المطلوب إعادة تفسيرها كسلسلة نصية. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime)

**القيمة المُعادة**

سلسلة ثابتة تحتوي على البايتات التي تمثل `x`. [`FixedString`](/ar/reference/data-types/fixedstring)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    reinterpretAsFixedString(toDateTime('1970-01-01 01:01:05')),
    reinterpretAsFixedString(toDate('1970-03-07'))
```

```response title=Response theme={null}
┌─reinterpretAsFixedString(toDateTime('1970-01-01 01:01:05'))─┬─reinterpretAsFixedString(toDate('1970-03-07'))─┐
│ A                                                           │ A                                              │
└─────────────────────────────────────────────────────────────┴────────────────────────────────────────────────┘
```

<div id="reinterpretAsFloat32">
  ## reinterpretAsFloat32
</div>

أُضيف في: v1.1.0

يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Float32.
وعلى خلاف [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsFloat32(x)
```

**الوسائط**

* `x` — القيمة المراد إعادة تفسيرها كـ [`Float32`](/ar/reference/data-types/float). [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المعادة**

تُرجع القيمة `x` بعد إعادة تفسيرها. [`Float32`](/ar/reference/data-types/float)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x)
```

```response title=Response theme={null}
┌──────────x─┬─reinterpretAsFloat32(x)─┐
│ 1045220557 │                     0.2 │
└────────────┴─────────────────────────┘
```

<div id="reinterpretAsFloat64">
  ## reinterpretAsFloat64
</div>

أُضيفت في: v1.1.0

تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Float64.
وعلى خلاف [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsFloat64(x)
```

**الوسيطات**

* `x` — قيمة يُعاد تفسيرها كـ Float64. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تعيد القيمة `x` بعد إعادة تفسيرها. [`Float64`](/ar/reference/data-types/float)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x)
```

```response title=Response theme={null}
┌───────────────────x─┬─reinterpretAsFloat64(x)─┐
│ 4596373779694328218 │                     0.2 │
└─────────────────────┴─────────────────────────┘
```

<div id="reinterpretAsInt128">
  ## reinterpretAsInt128
</div>

أُضيف في: v1.1.0

يُعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int128.
وبخلاف [`CAST`](#CAST)، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ فإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsInt128(x)
```

**المعاملات**

* `x` — القيمة المراد إعادة تفسيرها كـ Int128. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

يعيد القيمة `x` بعد إعادة تفسيرها. [`Int128`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt64(257) AS x,
    toTypeName(x),
    reinterpretAsInt128(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int64         │ 257 │ Int128          │
└─────┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsInt16">
  ## reinterpretAsInt16
</div>

أُضيفت في: v1.1.0

تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int16.
وعلى خلاف [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع المستهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**الصياغة**

```sql theme={null}
reinterpretAsInt16(x)
```

**المعاملات**

* `x` — القيمة المراد إعادة تفسيرها كـ Int16. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُعيد القيمة `x` بعد إعادة تفسيرها. [`Int16`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt8(257) AS x,
    toTypeName(x),
    reinterpretAsInt16(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ Int8          │   1 │ Int16           │
└───┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsInt256">
  ## reinterpretAsInt256
</div>

قُدِّمت في: v1.1.0

يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Int256.
وعلى خلاف [`CAST`](#CAST)، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون النتيجة غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsInt256(x)
```

**الوسيطات**

* `x` — القيمة المراد إعادة تفسيرها كـ Int256. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُرجِع القيمة `x` بعد إعادة تفسيرها. [`Int256`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt128(257) AS x,
    toTypeName(x),
    reinterpretAsInt256(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int128        │ 257 │ Int256          │
└─────┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsInt32">
  ## reinterpretAsInt32
</div>

قُدِّمت في: v1.1.0

تعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int32.
وعلى خلاف [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsInt32(x)
```

**الوسيطات**

* `x` — القيمة المراد إعادة تفسيرها إلى Int32. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُرجع القيمة `x` بعد إعادة تفسيرها. [`Int32`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT
    toInt16(257) AS x,
    toTypeName(x),
    reinterpretAsInt32(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int16         │ 257 │ Int32           │
└─────┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsInt64">
  ## reinterpretAsInt64
</div>

تم تقديمه في: v1.1.0

يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع Int64.
وخلافًا لـ [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsInt64(x)
```

**المعاملات**

* `x` — القيمة المراد إعادة تفسيرها كـ Int64. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُرجِع القيمة `x` بعد إعادة تفسيرها. [`Int64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt32(257) AS x,
    toTypeName(x),
    reinterpretAsInt64(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int32         │ 257 │ Int64           │
└─────┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsInt8">
  ## reinterpretAsInt8
</div>

أُضيف في: v1.1.0

يعيد تفسير قيمة الإدخال على أنها قيمة من النوع Int8.
وعلى خلاف [`CAST`](#CAST)، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsInt8(x)
```

**الوسائط**

* `x` — القيمة المراد إعادة تفسيرها إلى Int8. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُرجع القيمة `x` بعد إعادة تفسيرها. [`Int8`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt8(257) AS x,
    toTypeName(x),
    reinterpretAsInt8(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ UInt8         │   1 │ Int8            │
└───┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsString">
  ## reinterpretAsString
</div>

ظهر في: v1.1.0

تعيد تفسير قيمة الإدخال كسلسلة نصية (بافتراض ترتيب little endian).
ويتم تجاهل وحدات null byte الموجودة في النهاية. على سبيل المثال، تُرجِع الدالة للقيمة 255 من النوع UInt32 سلسلة نصية تحتوي على محرف واحد.

**البنية**

```sql theme={null}
reinterpretAsString(x)
```

**الوسيطات**

* `x` — القيمة المطلوب إعادة تفسيرها كسلسلة نصية. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime)

**القيمة المُعادة**

سلسلة `String` تحتوي على بايتات تمثل `x`. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    reinterpretAsString(toDateTime('1970-01-01 01:01:05')),
    reinterpretAsString(toDate('1970-03-07'))
```

```response title=Response theme={null}
┌─reinterpretAsString(toDateTime('1970-01-01 01:01:05'))─┬─reinterpretAsString(toDate('1970-03-07'))─┐
│ A                                                      │ A                                         │
└────────────────────────────────────────────────────────┴───────────────────────────────────────────┘
```

<div id="reinterpretAsUInt128">
  ## reinterpretAsUInt128
</div>

أُضيفت في: v1.1.0

تعيد تفسير قيمة الإدخال على أنها قيمة من النوع UInt128.
وعلى خلاف [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsUInt128(x)
```

**الوسائط**

* `x` — القيمة المراد إعادة تفسيرها كـ UInt128. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُرجع القيمة `x` بعد إعادة تفسيرها. [`UInt128`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt64(257) AS x,
    toTypeName(x),
    reinterpretAsUInt128(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt64        │ 257 │ UInt128         │
└─────┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsUInt16">
  ## reinterpretAsUInt16
</div>

أُضيف في: v1.1.0

يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt16.
وعلى خلاف [`CAST`](#CAST)، لا تحاول هذه الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsUInt16(x)
```

**المعاملات**

* `x` — القيمة المطلوب إعادة تفسيرها كـ UInt16. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُرجِع القيمة `x` بعد إعادة تفسيرها. [`UInt16`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt8(257) AS x,
    toTypeName(x),
    reinterpretAsUInt16(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ UInt8         │   1 │ UInt16          │
└───┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsUInt256">
  ## reinterpretAsUInt256
</div>

قُدِّم في: v1.1.0

يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt256.
وعلى خلاف [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**الصياغة**

```sql theme={null}
reinterpretAsUInt256(x)
```

**الوسيطات**

* `x` — القيمة المراد إعادة تفسيرها بصفتها UInt256. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

القيمة `x` بعد إعادة تفسيرها. [`UInt256`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt128(257) AS x,
    toTypeName(x),
    reinterpretAsUInt256(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt128       │ 257 │ UInt256         │
└─────┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsUInt32">
  ## reinterpretAsUInt32
</div>

قُدِّمت في: v1.1.0

يعيد تفسير قيمة الإدخال باعتبارها قيمة من النوع UInt32.
وعلى خلاف [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، فستكون قيمة الإخراج غير معرّفة.

**الصيغة**

```sql theme={null}
reinterpretAsUInt32(x)
```

**المعاملات**

* `x` — القيمة المراد إعادة تفسيرها على أنها UInt32. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المعادة**

تعيد القيمة `x` بعد إعادة تفسيرها. [`UInt32`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt16(257) AS x,
    toTypeName(x),
    reinterpretAsUInt32(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt16        │ 257 │ UInt32          │
└─────┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsUInt64">
  ## reinterpretAsUInt64
</div>

أُضيفت في: v1.1.0

تعيد هذه الدالة تفسير قيمة الإدخال على أنها قيمة من النوع UInt64.
وخلافًا لـ [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ وإذا كان النوع الهدف غير قادر على تمثيل نوع الإدخال، تكون قيمة الإخراج غير معرّفة.

**الصيغة**

```sql theme={null}
reinterpretAsUInt64(x)
```

**الوسيطات**

* `x` — القيمة المراد إعادة تفسيرها كـ UInt64. [`Int*`](/ar/reference/data-types/int-uint) أو [`UInt*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المعادة**

القيمة المُعاد تفسيرها لـ `x`. [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt32(257) AS x,
    toTypeName(x),
    reinterpretAsUInt64(x) AS res,
    toTypeName(res)
```

```response title=Response theme={null}
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt32        │ 257 │ UInt64          │
└─────┴───────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsUInt8">
  ## reinterpretAsUInt8
</div>

أُضيف في: v1.1.0

يعيد تفسير قيمة الإدخال على أنها قيمة من النوع UInt8.
وعلى خلاف [`CAST`](#CAST)، لا تحاول الدالة الحفاظ على القيمة الأصلية؛ فإذا لم يكن النوع الهدف قادرًا على تمثيل نوع الإدخال، تكون النتيجة غير معرّفة.

**البنية**

```sql theme={null}
reinterpretAsUInt8(x)
```

**الوسائط**

* `x` — القيمة المطلوب إعادة تفسيرها باعتبارها UInt8. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`UUID`](/ar/reference/data-types/uuid) أو [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُرجع القيمة `x` بعد إعادة تفسيرها. [`UInt8`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt8(-1) AS val,
    toTypeName(val),
    reinterpretAsUInt8(val) AS res,
    toTypeName(res);
```

```response title=Response theme={null}
┌─val─┬─toTypeName(val)─┬─res─┬─toTypeName(res)─┐
│  -1 │ Int8            │ 255 │ UInt8           │
└─────┴─────────────────┴─────┴─────────────────┘
```

<div id="reinterpretAsUUID">
  ## reinterpretAsUUID
</div>

أُضيفت في: v1.1.0

تقبل سلسلة بطول 16 بايت وتُرجع UUID عبر تفسير كل نصف مكوّن من 8 بايتات بترتيب البايتات little-endian. وإذا لم يكن طول السلسلة كافيًا، فستعمل الدالة كما لو أُضيف إليها العدد اللازم من البايتات الصفرية في النهاية. وإذا كانت السلسلة أطول من 16 بايتًا، فسيتم تجاهل البايتات الزائدة في النهاية.

**البنية**

```sql theme={null}
reinterpretAsUUID(fixed_string)
```

**الوسائط**

* `fixed_string` — سلسلة بايتات بترتيب `big-endian`. [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

قيمة من النوع `UUID`. [`UUID`](/ar/reference/data-types/uuid)

**أمثلة**

**من String إلى UUID**

```sql title=Query theme={null}
SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f')))
```

```response title=Response theme={null}
┌─reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f')))─┐
│                                  08090a0b-0c0d-0e0f-0001-020304050607 │
└───────────────────────────────────────────────────────────────────────┘
```

<div id="toBFloat16">
  ## toBFloat16
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع BFloat16.
ويُطلق استثناءً عند حدوث خطأ.

انظر أيضًا:

* [`toBFloat16OrZero`](#toBFloat16OrZero).
* [`toBFloat16OrNull`](#toBFloat16OrNull).

**الصيغة**

```sql theme={null}
toBFloat16(expr)
```

**الوسائط**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

تُرجِع قيمة brain-float‏ 16 بت. [`BFloat16`](/ar/reference/data-types/float)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
toBFloat16(toFloat32(42.7)),
toBFloat16(toFloat32('42.7')),
toBFloat16('42.7')
FORMAT Vertical;
```

```response title=Response theme={null}
toBFloat16(toFloat32(42.7)): 42.5
toBFloat16(t⋯32('42.7')):    42.5
toBFloat16('42.7'):          42.5
```

<div id="toBFloat16OrNull">
  ## toBFloat16OrNull
</div>

أُضيفت في: v1.1.0

تحوِّل قيمة إدخال من نوع String إلى قيمة من النوع BFloat16.
إذا كانت السلسلة النصية لا تمثِّل قيمة عددية بفاصلة عائمة، فتعيد الدالة NULL.

الوسيطات المدعومة:

* التمثيلات النصية للقيم الرقمية.

الوسيطات غير المدعومة (تعيد `NULL`):

* التمثيلات النصية للقيم الثنائية والسداسية العشرية.
* القيم الرقمية.

<Note>
  تسمح الدالة بفقدان الدقة بصمت أثناء التحويل من التمثيل النصي.
</Note>

انظر أيضًا:

* [`toBFloat16`](#toBFloat16).
* [`toBFloat16OrZero`](#toBFloat16OrZero).

**البنية**

```sql theme={null}
toBFloat16OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد قيمة `brain-float`‏ من 16 بت، وإلا `NULL`. [`BFloat16`](/ar/reference/data-types/float) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toBFloat16OrNull('0x5E'), -- unsupported arguments
       toBFloat16OrNull('12.3'), -- typical use
       toBFloat16OrNull('12.3456789') -- silent loss of precision
```

```response title=Response theme={null}
\N
12.25
12.3125
```

<div id="toBFloat16OrZero">
  ## toBFloat16OrZero
</div>

طُرح في: v1.1.0

يحوّل قيمة إدخال من نوع String إلى قيمة من النوع BFloat16.
إذا لم تكن السلسلة النصية تمثل قيمة ذات فاصلة عائمة، فستُرجع الدالة صفرًا.

الوسيطات المدعومة:

* التمثيلات النصية للقيم الرقمية.

الوسيطات غير المدعومة (تُرجع `0`):

* التمثيلات النصية للقيم الثنائية والسداسية العشرية.
* القيم الرقمية.

<Note>
  تسمح الدالة بفقدان الدقة بصمت أثناء التحويل من التمثيل النصي.
</Note>

انظر أيضًا:

* [`toBFloat16`](#toBFloat16).
* [`toBFloat16OrNull`](#toBFloat16OrNull).

**الصياغة**

```sql theme={null}
toBFloat16OrZero(x)
```

**الوسائط**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تُرجع قيمة `brain-float` ذات 16 بت، وإلا فتُرجع `0`. [`BFloat16`](/ar/reference/data-types/float)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toBFloat16OrZero('0x5E'), -- unsupported arguments
       toBFloat16OrZero('12.3'), -- typical use
       toBFloat16OrZero('12.3456789') -- silent loss of precision
```

```response title=Response theme={null}
0
12.25
12.3125
```

<div id="toBool">
  ## toBool
</div>

أُضيف في: v22.2.0

يحوّل قيمة الإدخال إلى قيمة من النوع Bool.

**الصيغة**

```sql theme={null}
toBool(expr)
```

**الوسائط**

* `expr` — تعبير يُرجع رقمًا أو سلسلة نصية. بالنسبة إلى السلاسل النصية، يقبل 'true' أو 'false' (غير حساس لحالة الأحرف). [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string) أو [`Expression`](/ar/reference/data-types/special-data-types/expression)

**القيمة المعادة**

يُرجع `true` أو `false` بناءً على تقييم الوسيط. [`Bool`](/ar/reference/data-types/boolean)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toBool(toUInt8(1)),
    toBool(toInt8(-1)),
    toBool(toFloat32(1.01)),
    toBool('true'),
    toBool('false'),
    toBool('FALSE')
FORMAT Vertical
```

```response title=Response theme={null}
toBool(toUInt8(1)):      true
toBool(toInt8(-1)):      true
toBool(toFloat32(1.01)): true
toBool('true'):          true
toBool('false'):         false
toBool('FALSE'):         false
```

<div id="toDate">
  ## toDate
</div>

أُضيف في: v1.1.0

يحوّل قيمة مُدخلة إلى النوع [`Date`](/ar/reference/data-types/date).
يدعم التحويل من الأنواع String وFixedString وDateTime أو من الأنواع الرقمية.

**البنية**

```sql theme={null}
toDate(x)
```

**المعاملات**

* `x` — قيمة الإدخال المطلوب تحويلها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)

**القيمة المُعادة**

يعيد قيمة الإدخال بعد تحويلها. [`Date`](/ar/reference/data-types/date)

**أمثلة**

**تحويل `String` إلى `Date`**

```sql title=Query theme={null}
SELECT toDate('2025-04-15')
```

```response title=Response theme={null}
2025-04-15
```

**تحويل DateTime إلى Date**

```sql title=Query theme={null}
SELECT toDate(toDateTime('2025-04-15 10:30:00'))
```

```response title=Response theme={null}
2025-04-15
```

**تحويل العدد الصحيح إلى Date**

```sql title=Query theme={null}
SELECT toDate(20297)
```

```response title=Response theme={null}
2025-07-28
```

<div id="toDate32">
  ## toDate32
</div>

أُضيف في: v21.9.0

يحوّل الوسيطة إلى نوع البيانات [Date32](/ar/reference/data-types/date32).
إذا كانت القيمة خارج النطاق، فإن `toDate32` يعيد القيم الحدّية التي يدعمها [Date32](/ar/reference/data-types/date32).
إذا كانت الوسيطة من النوع [`Date`](/ar/reference/data-types/date)، فتُؤخذ حدودها في الاعتبار.

**البنية**

```sql theme={null}
toDate32(expr)
```

**المعاملات**

* `expr` — القيمة المراد تحويلها. [`String`](/ar/reference/data-types/string) أو [`UInt32`](/ar/reference/data-types/int-uint) أو [`Date`](/ar/reference/data-types/date)

**القيمة المعادة**

يعيد تاريخًا تقويميًا. [`Date32`](/ar/reference/data-types/date32)

**أمثلة**

**ضمن النطاق**

```sql title=Query theme={null}
SELECT toDate32('2025-01-01') AS value, toTypeName(value)
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
value:           2025-01-01
toTypeName(value): Date32
```

**خارج النطاق**

```sql title=Query theme={null}
SELECT toDate32('1899-01-01') AS value, toTypeName(value)
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
value:           1900-01-01
toTypeName(value): Date32
```

<div id="toDate32OrDefault">
  ## toDate32OrDefault
</div>

استُحدث في: v21.11.0

يحوِّل الوسيط إلى نوع البيانات [Date32](/ar/reference/data-types/date32). إذا كانت القيمة خارج النطاق، فإن `toDate32OrDefault` تُرجع قيمة الحد الأدنى التي يدعمها [Date32](/ar/reference/data-types/date32). وإذا كان الوسيط من النوع [Date](/ar/reference/data-types/date)، فتُؤخذ حدوده في الاعتبار. وتُرجع القيمة الافتراضية إذا كان الوسيط غير صالح.

**البنية**

```sql theme={null}
toDate32OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل. [`Date32`](/ar/reference/data-types/date32)

**القيمة المعادة**

قيمة من النوع Date32 عند النجاح، وإلا فستُعاد القيمة الافتراضية إذا تم تمريرها، أو 1900-01-01 إذا لم يتم ذلك. [`Date32`](/ar/reference/data-types/date32)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01'))
```

```response title=Response theme={null}
1930-01-01
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01'))
```

```response title=Response theme={null}
2020-01-01
```

<div id="toDate32OrNull">
  ## toDate32OrNull
</div>

أُضيف في: v21.9.0

يحوّل قيمة الإدخال إلى قيمة من النوع Date32، لكنه يعيد `NULL` إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ [`toDate32`](#toDate32)، لكنه يعيد `NULL` إذا كانت الوسيطة غير صالحة.

**البنية**

```sql theme={null}
toDate32OrNull(x)
```

**الوسائط**

* `x` — تمثيل نصي لتاريخ. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد قيمة من النوع Date32 عند النجاح، وإلا `NULL`. [`Date32`](/ar/reference/data-types/date32) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid')
```

```response title=Response theme={null}
┌─toDate32OrNull('2025-01-01')─┬─toDate32OrNull('invalid')─┐
│                   2025-01-01 │                      ᴺᵁᴸᴸ │
└──────────────────────────────┴───────────────────────────┘
```

<div id="toDate32OrZero">
  ## toDate32OrZero
</div>

أُضيف في: v21.9.0

يحوّل قيمة مُدخلة إلى قيمة من النوع [Date32](/ar/reference/data-types/date32)، لكنه يعيد الحد الأدنى لـ [Date32](/ar/reference/data-types/date32) إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ [toDate32](#toDate32)، لكنه يعيد الحد الأدنى لـ [Date32](/ar/reference/data-types/date32) إذا كانت الوسيطة غير صالحة.

انظر أيضًا:

* [`toDate32`](#toDate32)
* [`toDate32OrNull`](#toDate32OrNull)
* [`toDate32OrDefault`](#toDate32OrDefault)

**الصيغة**

```sql theme={null}
toDate32OrZero(x)
```

**الوسائط**

* `x` — تمثيل نصي لتاريخ. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد قيمة `Date32` عند النجاح، وإلا تُعيد الحد الأدنى لقيم `Date32` (`1900-01-01`). [`Date32`](/ar/reference/data-types/date32)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('')
```

```response title=Response theme={null}
┌─toDate32OrZero('2025-01-01')─┬─toDate32OrZero('')─┐
│                   2025-01-01 │         1900-01-01 │
└──────────────────────────────┴────────────────────┘
```

<div id="toDateOrDefault">
  ## toDateOrDefault
</div>

تم تقديمها في: v21.11.0

مثل [toDate](#toDate)، ولكن إذا تعذّر ذلك، فتعيد قيمة افتراضية تكون إما الوسيطة الثانية (إذا كانت محددة)، أو الحد الأدنى لنوع [Date](/ar/reference/data-types/date) بخلاف ذلك.

**الصياغة**

```sql theme={null}
toDateOrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل. [`Date`](/ar/reference/data-types/date)

**القيمة المعادة**

قيمة من النوع Date عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا مُرِّرت، أو 1970-01-01 إذا لم تُمرَّر. [`Date`](/ar/reference/data-types/date)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toDateOrDefault('2022-12-30')
```

```response title=Response theme={null}
2022-12-30
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toDateOrDefault('', CAST('2023-01-01', 'Date'))
```

```response title=Response theme={null}
2023-01-01
```

<div id="toDateOrNull">
  ## toDateOrNull
</div>

استُحدث في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع `Date`، لكنه يعيد `NULL` إذا تلقّى وسيطة غير صالحة.
وهو مثل [`toDate`](#toDate)، لكنه يعيد `NULL` إذا تلقّى وسيطة غير صالحة.

**الصياغة**

```sql theme={null}
toDateOrNull(x)
```

**الوسائط**

* `x` — تمثيل نصي لتاريخ. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجع قيمة من النوع [`Date`](/ar/reference/data-types/date) عند النجاح، وإلا `NULL`. [`Date`](/ar/reference/data-types/date) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid')
```

```response title=Response theme={null}
┌─toDateOrNull('2025-12-30')─┬─toDateOrNull('invalid')─┐
│                 2025-12-30 │                   ᴺᵁᴸᴸ │
└────────────────────────────┴────────────────────────┘
```

<div id="toDateOrZero">
  ## toDateOrZero
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [`Date`](/ar/reference/data-types/date)، لكنه يعيد الحد الأدنى لـ [`Date`](/ar/reference/data-types/date) عند تمرير وسيطة غير صالحة.
وهو مماثل لـ [toDate](#toDate)، لكنه يعيد الحد الأدنى لـ [`Date`](/ar/reference/data-types/date) عند تمرير وسيطة غير صالحة.

انظر أيضًا:

* [`toDate`](#toDate)
* [`toDateOrNull`](#toDateOrNull)
* [`toDateOrDefault`](#toDateOrDefault)

**البنية**

```sql theme={null}
toDateOrZero(x)
```

**الوسائط**

* `x` — تمثيل نصي لتاريخ. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من النوع Date عند النجاح، وإلا فيُعيد الحد الأدنى لـ Date (`1970-01-01`). [`Date`](/ar/reference/data-types/date)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDateOrZero('2025-12-30'), toDateOrZero('')
```

```response title=Response theme={null}
┌─toDateOrZero('2025-12-30')─┬─toDateOrZero('')─┐
│                 2025-12-30 │       1970-01-01 │
└────────────────────────────┴──────────────────┘
```

<div id="toDateTime">
  ## toDateTime
</div>

أُضيف في: v1.1.0

يحوّل قيمة مُدخلة إلى النوع [DateTime](/ar/reference/data-types/datetime).

<Note>
  إذا كانت `expr` رقمًا، فسيُفسَّر على أنه عدد الثواني منذ بداية Unix Epoch (أي كـ Unix timestamp).
  إذا كانت `expr` من النوع [String](/ar/reference/data-types/string)، فقد تُفسَّر على أنها Unix timestamp أو على أنها تمثيل نصي لتاريخ أو لتاريخ مع وقت.
  لذلك، يُعطَّل صراحةً تحليل التمثيلات النصية للأرقام القصيرة (حتى 4 أرقام) بسبب الالتباس؛ فعلى سبيل المثال، قد تكون السلسلة `'1999'` سنةً (تمثيلًا نصيًا غير مكتمل لـ Date / DateTime) أو unix timestamp. ويُسمح بالسلاسل الرقمية الأطول.
</Note>

**الصياغة**

```sql theme={null}
toDateTime(expr[, time_zone])
```

**الوسيطات**

* `expr` — القيمة. [`String`](/ar/reference/data-types/string) أو [`Int`](/ar/reference/data-types/int-uint) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime)
* `time_zone` — المنطقة الزمنية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجع قيمة من نوع التاريخ والوقت. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDateTime('2025-01-01 00:00:00'), toDateTime(1735689600, 'UTC')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toDateTime('2025-01-01 00:00:00'): 2025-01-01 00:00:00
toDateTime(1735689600, 'UTC'):     2025-01-01 00:00:00
```

<div id="toDateTime32">
  ## toDateTime32
</div>

استُحدثت في: v20.9.0

يحوّل قيمة الإدخال إلى النوع `DateTime`.
يدعم التحويل من `String` و`FixedString` و`Date` و`Date32` و`DateTime` أو من الأنواع الرقمية (`(U)Int*` و`Float*` و`Decimal`).
يوفّر DateTime32 نطاقًا أوسع مقارنةً بـ `DateTime`، إذ يدعم التواريخ من `1900-01-01` إلى `2299-12-31`.

**الصياغة**

```sql theme={null}
toDateTime32(x[, timezone])
```

**الوسيطات**

* `x` — قيمة الإدخال المراد تحويلها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`UInt*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`DateTime64`](/ar/reference/data-types/datetime64)
* `timezone` — اختياري. المنطقة الزمنية لقيمة `DateTime` المُعادة. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد قيمة الإدخال بعد تحويلها. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**القيمة ضمن النطاق**

```sql title=Query theme={null}
SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value);
```

```response title=Response theme={null}
┌───────────────────value─┬─toTypeName(toDateTime64('20255-01-01 00:00:00.000', 3))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3)                                          │
└─────────────────────────┴────────────────────────────────────────────────────────┘
```

**كعدد عشري بدقة محددة**

```sql title=Query theme={null}
SELECT toDateTime64(1735689600.000, 3) AS value, toTypeName(value);
-- without the decimal point the value is still treated as Unix Timestamp in seconds
SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value);
```

```response title=Response theme={null}
┌───────────────────value─┬─toTypeName(toDateTime64(1735689600.000, 3))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3)                            │
└─────────────────────────┴──────────────────────────────────────────┘
┌───────────────────value─┬─toTypeName(toDateTime64(1546300800000, 3))─┐
│ 2282-12-31 00:00:00.000 │ DateTime64(3)                              │
└─────────────────────────┴────────────────────────────────────────────┘
```

**مع تحديد منطقة زمنية**

```sql title=Query theme={null}
SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value);
```

```response title=Response theme={null}
┌───────────────────value─┬─toTypeName(toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul'))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3, 'Asia/Istanbul')                                      │
└─────────────────────────┴─────────────────────────────────────────────────────────────────────┘
```

<div id="toDateTime64">
  ## toDateTime64
</div>

أُضيف في: v20.1.0

يحوّل قيمة إدخال إلى قيمة من النوع [`DateTime64`](/ar/reference/data-types/datetime64).

**الصيغة**

```sql theme={null}
toDateTime64(expr, scale[, timezone])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `scale` — مقدار النبضة (الدقة): 10^(-scale) ثانية. [`UInt8`](/ar/reference/data-types/int-uint)
* `timezone` — اختياري. المنطقة الزمنية لكائن `DateTime64` المحدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجع تاريخًا تقويميًا ووقتًا من اليوم، بدقة أجزاء من الثانية. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**القيمة ضمن النطاق**

```sql title=Query theme={null}
SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value);
```

```response title=Response theme={null}
┌───────────────────value─┬─toTypeName(toDateTime64('2025-01-01 00:00:00.000', 3))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3)                                          │
└─────────────────────────┴────────────────────────────────────────────────────────┘
```

**بصيغة Decimal بدقة**

```sql title=Query theme={null}
SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value);
-- Without the decimal point the value is still treated as Unix Timestamp in seconds
SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value);
```

```response title=Response theme={null}
┌───────────────────value─┬─toTypeName(toDateTime64(1546300800000, 3))─┐
│ 2282-12-31 00:00:00.000 │ DateTime64(3)                              │
└─────────────────────────┴────────────────────────────────────────────┘
```

**باستخدام المنطقة الزمنية**

```sql title=Query theme={null}
SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value);
```

```response title=Response theme={null}
┌───────────────────value─┬─toTypeName(toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul'))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3, 'Asia/Istanbul')                                      │
└─────────────────────────┴─────────────────────────────────────────────────────────────────────┘
```

<div id="toDateTime64OrDefault">
  ## toDateTime64OrDefault
</div>

أُضيف في: v21.11.0

مثل [toDateTime64](#toDateTime64)، تُحوِّل هذه الدالة قيمة إدخال إلى قيمة من النوع [DateTime64](/ar/reference/data-types/datetime64)،
لكنها تُرجع إما القيمة الافتراضية من [DateTime64](/ar/reference/data-types/datetime64)
أو القيمة الافتراضية المُعطاة إذا تم تمرير مُعامل غير صالح.

**الصيغة**

```sql theme={null}
toDateTime64OrDefault(expr, scale[, timezone, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `scale` — حجم الـ tick (الدقة): ‏10^-precision ثانية. [`UInt8`](/ar/reference/data-types/int-uint)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)
* `default` — اختياري. القيمة الافتراضية التي ستُعاد إذا لم تنجح عملية التحليل. [`DateTime64`](/ar/reference/data-types/datetime64)

**القيمة المعادة**

قيمة من النوع DateTime64 عند النجاح، وإلا فستُعاد القيمة الافتراضية إذا تم تمريرها، أو 1970-01-01 00:00:00.000 إذا لم يتم ذلك. [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toDateTime64OrDefault('1976-10-18 00:00:00.30', 3)
```

```response title=Response theme={null}
1976-10-18 00:00:00.300
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2001-01-01 00:00:00.00',3))
```

```response title=Response theme={null}
2000-12-31 23:00:00.000
```

<div id="toDateTime64OrNull">
  ## toDateTime64OrNull
</div>

استُحدثت في: v20.1.0

يحوّل قيمة إدخال إلى قيمة من النوع `DateTime64`، لكنه يعيد `NULL` إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ `toDateTime64`، لكنه يعيد `NULL` إذا كانت الوسيطة غير صالحة.

**البنية**

```sql theme={null}
toDateTime64OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لتاريخ ووقت بدقة أجزاء الثانية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجِع قيمة `DateTime64` عند النجاح، وإلا `NULL`. [`DateTime64`](/ar/reference/data-types/datetime64) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invalid')
```

```response title=Response theme={null}
┌─toDateTime64OrNull('2025-12-30 13:44:17.123')─┬─toDateTime64OrNull('invalid')─┐
│                         2025-12-30 13:44:17.123 │                          ᴺᵁᴸᴸ │
└─────────────────────────────────────────────────┴───────────────────────────────┘
```

<div id="toDateTime64OrZero">
  ## toDateTime64OrZero
</div>

أُضيفت في: v20.1.0

يحوِّل قيمة الإدخال إلى قيمة من النوع [DateTime64](/ar/reference/data-types/datetime64)، لكنه يعيد الحد الأدنى لـ [DateTime64](/ar/reference/data-types/datetime64) إذا استلم وسيطة غير صالحة.
وهو مماثل لـ [toDateTime64](#toDateTime64)، لكنه يعيد الحد الأدنى لـ [DateTime64](/ar/reference/data-types/datetime64) إذا استلم وسيطة غير صالحة.

راجع أيضًا:

* [toDateTime64](#toDateTime64).
* [toDateTime64OrNull](#toDateTime64OrNull).
* [toDateTime64OrDefault](#toDateTime64OrDefault).

**البنية**

```sql theme={null}
toDateTime64OrZero(x)
```

**الوسيطات**

* `x` — تمثيل نصي لتاريخ ووقت بدقة أجزاء من الثانية. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تعيد قيمة من النوع DateTime64 عند النجاح، وإلا فتعيد الحد الأدنى لـ DateTime64 (`1970-01-01 00:00:00.000`). [`DateTime64`](/ar/reference/data-types/datetime64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invalid')
```

```response title=Response theme={null}
┌─toDateTime64OrZero('2025-12-30 13:44:17.123')─┬─toDateTime64OrZero('invalid')─┐
│                         2025-12-30 13:44:17.123 │             1970-01-01 00:00:00.000 │
└─────────────────────────────────────────────────┴─────────────────────────────────────┘
```

<div id="toDateTimeOrDefault">
  ## toDateTimeOrDefault
</div>

تم تقديمه في: v21.11.0

مثل [toDateTime](#toDateTime)، ولكن إذا تعذّر التحويل، فإنه يعيد قيمة افتراضية تكون إما الوسيطة الثالثة (إذا كانت محددة)، أو الحد الأدنى لنوع [DateTime](/ar/reference/data-types/datetime) بخلاف ذلك.

**البنية**

```sql theme={null}
toDateTimeOrDefault(expr[, timezone, default])
```

**الوسائط**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `timezone` — اختياري. المنطقة الزمنية. [`String`](/ar/reference/data-types/string)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل. [`DateTime`](/ar/reference/data-types/datetime)

**القيمة المُعادة**

قيمة من النوع DateTime عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 1970-01-01 00:00:00 إذا لم يتم تمريرها. [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toDateTimeOrDefault('2022-12-30 13:44:17')
```

```response title=Response theme={null}
2022-12-30 13:44:17
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')'))
```

```response title=Response theme={null}
2023-01-01 00:00:00
```

<div id="toDateTimeOrNull">
  ## toDateTimeOrNull
</div>

أُضيفت في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع `DateTime`، لكنه يُرجع `NULL` إذا تلقّى وسيطًا غير صالح.
وهو مماثل لـ [`toDateTime`](#toDateTime)، لكنه يُرجع `NULL` إذا تلقّى وسيطًا غير صالح.

**البنية**

```sql theme={null}
toDateTimeOrNull(x)
```

**المعاملات**

* `x` — تمثيل نصي لتاريخ ووقت. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجع قيمة من نوع `DateTime` عند النجاح، وإلا `NULL`. [`DateTime`](/ar/reference/data-types/datetime) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid')
```

```response title=Response theme={null}
┌─toDateTimeOrNull('2025-12-30 13:44:17')─┬─toDateTimeOrNull('invalid')─┐
│                     2025-12-30 13:44:17 │                        ᴺᵁᴸᴸ │
└─────────────────────────────────────────┴─────────────────────────────┘
```

<div id="toDateTimeOrZero">
  ## toDateTimeOrZero
</div>

تم تقديمه في: v1.1.0

يحوّل قيمة مُدخلة إلى قيمة من النوع [DateTime](/ar/reference/data-types/datetime)، لكنه يعيد الحد الأدنى لـ [DateTime](/ar/reference/data-types/datetime) إذا كانت الوسيطة غير صالحة.
وهو مماثل لـ [toDateTime](#toDateTime)، لكنه يعيد الحد الأدنى لـ [DateTime](/ar/reference/data-types/datetime) إذا كانت الوسيطة غير صالحة.

**البنية**

```sql theme={null}
toDateTimeOrZero(x)
```

**الوسيطات**

* `x` — تمثيل نصي لتاريخ ووقت. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من نوع DateTime عند النجاح، وإلا فيُعيد الحد الأدنى لنوع DateTime (`1970-01-01 00:00:00`). [`DateTime`](/ar/reference/data-types/datetime)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid')
```

```response title=Response theme={null}
┌─toDateTimeOrZero('2025-12-30 13:44:17')─┬─toDateTimeOrZero('invalid')─┐
│                     2025-12-30 13:44:17 │         1970-01-01 00:00:00 │
└─────────────────────────────────────────┴─────────────────────────────┘
```

<div id="toDecimal128">
  ## toDecimal128
</div>

أُضيفت في: v18.12.0

تحوّل قيمة إدخال إلى قيمة من النوع [`Decimal(38, S)`](/ar/reference/data-types/decimal) بمقياس `S`.
يرفع استثناءً عند حدوث خطأ.

الوسيطات المدعومة:

* القيم أو تمثيلاتها النصية من النوع (U)Int\*.
* القيم أو تمثيلاتها النصية من النوع Float\*.

الوسيطات غير المدعومة:

* القيم أو التمثيلات النصية لقيم Float\* `NaN` و `Inf` (دون حساسية لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toDecimal128('0xc0fe', 1);`.

<Note>
  قد يحدث تجاوز إذا كانت قيمة `expr` تتجاوز حدود `Decimal128`:`(-1*10^(38 - S), 1*10^(38 - S))`.
  تُهمَل الأرقام الزائدة في الجزء الكسري (من دون تقريب).
  تؤدي الأرقام الزائدة في الجزء الصحيح إلى رفع استثناء.
</Note>

<Warning>
  تحذف التحويلات الأرقام الزائدة، وقد تعمل بطريقة غير متوقعة عند التعامل مع مدخلات Float32/Float64 لأن العمليات تُنفَّذ باستخدام تعليمات الفاصلة العائمة.
  على سبيل المثال: `toDecimal128(1.15, 2)` يساوي `1.14` لأن 1.15 \* 100 في الفاصلة العائمة يساوي 114.99.
  يمكنك استخدام مُدخل من نوع String بحيث تستخدم العمليات النوع الصحيح الأساسي: `toDecimal128('1.15', 2) = 1.15`
</Warning>

**الصياغة**

```sql theme={null}
toDecimal128(expr, S)
```

**الوسيطات**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`Expression`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و38، ويُحدِّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من العدد. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجع قيمة من النوع `Decimal(38, S)` [`Decimal128(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toDecimal128(99, 1) AS a, toTypeName(a) AS type_a,
    toDecimal128(99.67, 2) AS b, toTypeName(b) AS type_b,
    toDecimal128('99.67', 3) AS c, toTypeName(c) AS type_c
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
a:      99
type_a: Decimal(38, 1)
b:      99.67
type_b: Decimal(38, 2)
c:      99.67
type_c: Decimal(38, 3)
```

<div id="toDecimal128OrDefault">
  ## toDecimal128OrDefault
</div>

تم تقديمه في: v21.11.0

مثل [`toDecimal128`](#toDecimal128)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Decimal(38, S)](/ar/reference/data-types/decimal)، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.

**البنية**

```sql theme={null}
toDecimal128OrDefault(expr, S[, default])
```

**الوسيطات**

* `expr` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)
* `S` — معامل المقياس بين 0 و38، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل إلى النوع Decimal128(S). [`Decimal128(S)`](/ar/reference/data-types/decimal)

**القيمة المُعادة**

قيمة من النوع Decimal(38, S) عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`Decimal128(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toDecimal128OrDefault(toString(1/42), 18)
```

```response title=Response theme={null}
0.023809523809523808
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)'))
```

```response title=Response theme={null}
-1
```

<div id="toDecimal128OrNull">
  ## toDecimal128OrNull
</div>

أُضيف في: v20.1.0

يحوّل قيمة إدخال إلى قيمة من النوع [`Decimal(38, S)`](/ar/reference/data-types/decimal)، لكنه يعيد `NULL` في حال حدوث خطأ.
وهو يشبه [`toDecimal128`](#toDecimal128)، لكنه يعيد `NULL` بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم أو التمثيلات النصية من النوع Float\*.

الوسيطات غير المدعومة (تعيد `NULL`):

* القيم أو التمثيلات النصية لقيم Float\* `NaN` و`Inf` (غير حساسة لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والسداسية العشرية.
* القيم التي تتجاوز حدود `Decimal128`:`(-1*10^(38 - S), 1*10^(38 - S))`.

انظر أيضًا:

* [`toDecimal128`](#toDecimal128).
* [`toDecimal128OrZero`](#toDecimal128OrZero).
* [`toDecimal128OrDefault`](#toDecimal128OrDefault).

**البنية**

```sql theme={null}
toDecimal128OrNull(expr, S)
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و38، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

يُرجع قيمة Decimal(38, S) عند النجاح، وإلا يُرجع `NULL`. [`Decimal128(S)`](/ar/reference/data-types/decimal) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2)
```

```response title=Response theme={null}
┌─toDecimal128OrNull('42.7', 2)─┬─toDecimal128OrNull('invalid', 2)─┐
│                         42.70 │                             ᴺᵁᴸᴸ │
└───────────────────────────────┴──────────────────────────────────┘
```

<div id="toDecimal128OrZero">
  ## toDecimal128OrZero
</div>

تم تقديمه في: v20.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Decimal(38, S)](/ar/reference/data-types/decimal)، لكنه يعيد `0` في حال حدوث خطأ.
يشبه [`toDecimal128`](#toDecimal128)، لكنه يعيد `0` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

الوسائط المدعومة:

* القيم أو تمثيلاتها النصية من النوع (U)Int\*.
* القيم أو تمثيلاتها النصية من النوع Float\*.

الوسائط غير المدعومة (تعيد `0`):

* القيم أو التمثيلات النصية لقيم Float\* `NaN` و`Inf` (دون حساسية لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والست عشرية.

<Note>
  إذا تجاوزت قيمة الإدخال حدود `Decimal128`:`(-1*10^(38 - S), 1*10^(38 - S))`، فستعيد الدالة `0`.
</Note>

**البنية**

```sql theme={null}
toDecimal128OrZero(expr, S)
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و38، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجع قيمة Decimal(38, S) عند النجاح، وإلا `0`. [`Decimal128(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**الاستخدام الأساسي**

```sql title=Query theme={null}
SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2)
```

```response title=Response theme={null}
┌─toDecimal128OrZero('42.7', 2)─┬─toDecimal128OrZero('invalid', 2)─┐
│                         42.70 │                             0.00 │
└───────────────────────────────┴──────────────────────────────────┘
```

<div id="toDecimal256">
  ## toDecimal256
</div>

طُرِحت في: v20.8.0

يحوّل قيمة الإدخال إلى قيمة من النوع [`Decimal(76, S)`](/ar/reference/data-types/decimal) ذات مقياس `S`. يطلق استثناءً عند حدوث خطأ.

الوسيطات المدعومة:

* القيم أو تمثيلاتها النصية من النوع (U)Int\*.
* القيم أو تمثيلاتها النصية من النوع Float\*.

الوسيطات غير المدعومة:

* القيم أو تمثيلاتها النصية لقيم Float\* ‏`NaN` و`Inf` (من دون حساسية لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toDecimal256('0xc0fe', 1);`.

<Note>
  قد يحدث تجاوز إذا كانت قيمة `expr` تتجاوز حدود `Decimal256`:`(-1*10^(76 - S), 1*10^(76 - S))`.
  تُهمَل الأرقام الزائدة في الجزء الكسري (من دون تقريب).
  وتؤدي الأرقام الزائدة في الجزء الصحيح إلى إطلاق استثناء.
</Note>

<Warning>
  تُسقِط التحويلات الأرقام الزائدة، وقد تعمل على نحو غير متوقع عند التعامل مع مُدخلات Float32/Float64 لأن العمليات تُنفَّذ باستخدام تعليمات الفاصلة العائمة.
  على سبيل المثال: `toDecimal256(1.15, 2)` يساوي `1.14` لأن 1.15 \* 100 في الفاصلة العائمة يساوي 114.99.
  يمكنك استخدام مُدخل String لكي تستخدم العمليات نوع العدد الصحيح الأساسي: `toDecimal256('1.15', 2) = 1.15`
</Warning>

**الصياغة**

```sql theme={null}
toDecimal256(expr, S)
```

**الوسيطات**

* `expr` — تعبير يُرجِع عددًا أو تمثيلًا نصيًا لعدد. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و76، ويحدّد عدد الأرقام التي يمكن أن يحتوي عليها الجزء الكسري من العدد. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجِع قيمة من النوع `Decimal(76, S)`. [`Decimal256(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toDecimal256(99, 1) AS a, toTypeName(a) AS type_a,
    toDecimal256(99.67, 2) AS b, toTypeName(b) AS type_b,
    toDecimal256('99.67', 3) AS c, toTypeName(c) AS type_c
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
a:      99
type_a: Decimal(76, 1)
b:      99.67
type_b: Decimal(76, 2)
c:      99.67
type_c: Decimal(76, 3)
```

<div id="toDecimal256OrDefault">
  ## toDecimal256OrDefault
</div>

أُضيفت في: v21.11.0

مثل [`toDecimal256`](#toDecimal256)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Decimal(76, S)](/ar/reference/data-types/decimal)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.

**الصيغة**

```sql theme={null}
toDecimal256OrDefault(expr, S[, default])
```

**الوسيطات**

* `expr` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)
* `S` — معامل المقياس بين 0 و76، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل إلى النوع Decimal256(S). [`Decimal256(S)`](/ar/reference/data-types/decimal)

**القيمة المُعادة**

قيمة من النوع Decimal(76, S) عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`Decimal256(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toDecimal256OrDefault(toString(1/42), 76)
```

```response title=Response theme={null}
0.023809523809523808
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)'))
```

```response title=Response theme={null}
-1
```

<div id="toDecimal256OrNull">
  ## toDecimal256OrNull
</div>

أُضيفت في: v20.8.0

تحوِّل قيمة الإدخال إلى قيمة من النوع [`Decimal(76, S)`](/ar/reference/data-types/decimal)، لكنها تُرجع `NULL` في حال حدوث خطأ.
تشبه [`toDecimal256`](#toDecimal256)، لكنها تُرجع `NULL` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

الوسائط المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم أو التمثيلات النصية من النوع Float\*.

الوسائط غير المدعومة (تُرجع `NULL`):

* القيم أو التمثيلات النصية لقيم Float\* `NaN` و`Inf` (بدون حساسية لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والسداسية العشرية.
* القيم التي تتجاوز حدود `Decimal256`: `(-1 * 10^(76 - S), 1 * 10^(76 - S))`.

انظر أيضًا:

* [`toDecimal256`](#toDecimal256).
* [`toDecimal256OrZero`](#toDecimal256OrZero).
* [`toDecimal256OrDefault`](#toDecimal256OrDefault).

**البنية**

```sql theme={null}
toDecimal256OrNull(expr, S)
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `S` — معلمة المقياس بين 0 و76، وتحدد عدد الخانات التي يمكن أن يتضمنها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

يُرجع قيمة من النوع Decimal(76, S) عند النجاح، وإلا `NULL`. [`Decimal256(S)`](/ar/reference/data-types/decimal) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2)
```

```response title=Response theme={null}
┌─toDecimal256OrNull('42.7', 2)─┬─toDecimal256OrNull('invalid', 2)─┐
│                         42.70 │                             ᴺᵁᴸᴸ │
└───────────────────────────────┴──────────────────────────────────┘
```

<div id="toDecimal256OrZero">
  ## toDecimal256OrZero
</div>

أُضيف في: v20.8.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Decimal(76, S)](/ar/reference/data-types/decimal)، لكنه يعيد `0` في حال حدوث خطأ.
يشبه [`toDecimal256`](#toDecimal256)، لكنه يعيد `0` بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم أو التمثيلات النصية من النوع Float\*.

الوسيطات غير المدعومة (تعيد `0`):

* القيم أو التمثيلات النصية لقيم Float\* `NaN` و`Inf` (غير حساسة لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والستّ عشرية.

<Note>
  إذا تجاوزت قيمة الإدخال حدود `Decimal256`:`(-1*10^(76 - S), 1*10^(76 - S))`، فستعيد الدالة `0`.
</Note>

انظر أيضًا:

* [`toDecimal256`](#toDecimal256).
* [`toDecimal256OrNull`](#toDecimal256OrNull).
* [`toDecimal256OrDefault`](#toDecimal256OrDefault).

**البنية**

```sql theme={null}
toDecimal256OrZero(expr, S)
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`Expression`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و76، ويحدّد عدد الخانات التي يمكن أن يتكوّن منها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجع قيمة Decimal(76, S) عند النجاح، وإلا يُرجع `0`. [`Decimal256(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2)
```

```response title=Response theme={null}
┌─toDecimal256OrZero('42.7', 2)─┬─toDecimal256OrZero('invalid', 2)─┐
│                         42.70 │                             0.00 │
└───────────────────────────────┴──────────────────────────────────┘
```

<div id="toDecimal32">
  ## toDecimal32
</div>

أُضيف في: v18.12.0

يحوّل قيمة إدخال إلى قيمة من النوع [`Decimal(9, S)`](/ar/reference/data-types/decimal) ذات مقياس `S`. ويطلق استثناءً عند حدوث خطأ.

الوسائط المدعومة:

* قيم أو تمثيلات نصية من النوع (U)Int\*.
* قيم أو تمثيلات نصية من النوع Float\*.

الوسائط غير المدعومة:

* قيم أو تمثيلات نصية لقيم Float\* `NaN` و`Inf` (من دون حساسية لحالة الأحرف).
* تمثيلات نصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toDecimal32('0xc0fe', 1);`.

<Note>
  قد يحدث تجاوز سعة إذا تجاوزت قيمة `expr` حدود `Decimal32`:`(-1*10^(9 - S), 1*10^(9 - S))`.
  تُهمَل الأرقام الزائدة في الجزء الكسري (من دون تقريب).
  أما الأرقام الزائدة في الجزء الصحيح فتؤدي إلى استثناء.
</Note>

<Warning>
  تتجاهل التحويلات الأرقام الزائدة، وقد تعمل على نحو غير متوقع عند التعامل مع مدخلات Float32/Float64 لأن العمليات تُنفَّذ باستخدام تعليمات الفاصلة العائمة.
  على سبيل المثال: `toDecimal32(1.15, 2)` تساوي `1.14` لأن 1.15 \* 100 في الفاصلة العائمة يساوي 114.99.
  يمكنك استخدام مُدخل من النوع String لكي تستخدم العمليات النوع الصحيح الأساسي: `toDecimal32('1.15', 2) = 1.15`
</Warning>

**الصيغة**

```sql theme={null}
toDecimal32(expr, S)
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو سلسلة نصية تمثل رقمًا. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يتكوّن منها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجع قيمة من النوع `Decimal(9, S)` [`Decimal32(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toDecimal32(2, 1) AS a, toTypeName(a) AS type_a,
    toDecimal32(4.2, 2) AS b, toTypeName(b) AS type_b,
    toDecimal32('4.2', 3) AS c, toTypeName(c) AS type_c
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
a:      2
type_a: Decimal(9, 1)
b:      4.2
type_b: Decimal(9, 2)
c:      4.2
type_c: Decimal(9, 3)
```

<div id="toDecimal32OrDefault">
  ## toDecimal32OrDefault
</div>

قُدِّمت في: v21.11.0

مثل [`toDecimal32`](#toDecimal32)، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Decimal(9, S)](/ar/reference/data-types/decimal)، لكنها تُرجِع القيمة الافتراضية في حال حدوث خطأ.

**البنية**

```sql theme={null}
toDecimal32OrDefault(expr, S[, default])
```

**الوسائط**

* `expr` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)
* `S` — معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)
* `default` — اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل إلى النوع Decimal32(S). [`Decimal32(S)`](/ar/reference/data-types/decimal)

**القيمة المُعادة**

قيمة من النوع Decimal(9, S) عند نجاح العملية، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`Decimal32(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toDecimal32OrDefault(toString(0.0001), 5)
```

```response title=Response theme={null}
0.0001
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)'))
```

```response title=Response theme={null}
-1
```

<div id="toDecimal32OrNull">
  ## toDecimal32OrNull
</div>

أُضيفت في: v20.1.0

تحوِّل قيمة مُدخلة إلى قيمة من النوع [`Decimal(9, S)`](/ar/reference/data-types/decimal)، لكنها تُرجع `NULL` في حال حدوث خطأ.
تشبه [`toDecimal32`](#toDecimal32)، لكنها تُرجع `NULL` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

الوسيطات المدعومة:

* القيم أو تمثيلاتها النصية من النوع (U)Int\*.
* القيم أو تمثيلاتها النصية من النوع Float\*.

الوسيطات غير المدعومة (تُرجع `NULL`):

* القيم أو تمثيلاتها النصية من قيم Float\* وهي `NaN` و`Inf` (غير حساسة لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والسداسية العشرية.
* القيم التي تتجاوز حدود `Decimal32`:`(-1*10^(9 - S), 1*10^(9 - S))`.

انظر أيضًا:

* [`toDecimal32`](#toDecimal32).
* [`toDecimal32OrZero`](#toDecimal32OrZero).
* [`toDecimal32OrDefault`](#toDecimal32OrDefault).

**البنية**

```sql theme={null}
toDecimal32OrNull(expr, S)
```

**الوسائط**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و9، ويحدّد عدد الأرقام التي يمكن أن يحتويها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

يُرجع قيمة من النوع Decimal(9, S) عند النجاح، وإلا فيُرجع `NULL`. [`Decimal32(S)`](/ar/reference/data-types/decimal) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2)
```

```response title=Response theme={null}
┌─toDecimal32OrNull('42.7', 2)─┬─toDecimal32OrNull('invalid', 2)─┐
│                        42.70 │                            ᴺᵁᴸᴸ │
└──────────────────────────────┴─────────────────────────────────┘
```

<div id="toDecimal32OrZero">
  ## toDecimal32OrZero
</div>

أُضيفت في: v20.1.0

تحوّل قيمة الإدخال إلى قيمة من النوع [Decimal(9, S)](/ar/reference/data-types/decimal)، لكنها تُرجِع `0` في حال حدوث خطأ.
تشبه [`toDecimal32`](#toDecimal32)، لكنها تُرجِع `0` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

الوسائط المدعومة:

* القيم أو تمثيلاتها النصية من النوع (U)Int\*.
* القيم أو تمثيلاتها النصية من النوع Float\*.

الوسائط غير المدعومة (تُرجِع `0`):

* القيم أو التمثيلات النصية لقيم Float\* `NaN` و`Inf` (دون حساسية لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والسداسية عشرية.

<Note>
  إذا تجاوزت قيمة الإدخال حدود `Decimal32`:`(-1*10^(9 - S), 1*10^(9 - S))`، فستُرجِع الدالة `0`.
</Note>

**البنية**

```sql theme={null}
toDecimal32OrZero(expr, S)
```

**المعاملات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`Expression`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و9، ويحدّد عدد الخانات التي يمكن أن يحتويها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجع قيمة Decimal(9, S) عند النجاح، وإلا تُرجع `0`. [`Decimal32(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2)
```

```response title=Response theme={null}
┌─toDecimal32OrZero('42.7', 2)─┬─toDecimal32OrZero('invalid', 2)─┐
│                        42.70 │                            0.00 │
└──────────────────────────────┴─────────────────────────────────┘
```

<div id="toDecimal64">
  ## toDecimal64
</div>

أُضيف في: v18.12.0

يحوّل قيمة الإدخال إلى قيمة من النوع [`Decimal(18, S)`](/ar/reference/data-types/decimal) وبمقياس `S`.
يرفع استثناءً في حال حدوث خطأ.

الوسائط المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم أو التمثيلات النصية من النوع Float\*.

الوسائط غير المدعومة:

* القيم أو التمثيلات النصية لقيم Float\* ‏`NaN` و `Inf` (غير حساسة لحالة الأحرف).
* التمثيلات النصية للقيم الثنائية والست عشرية، مثل `SELECT toDecimal64('0xc0fe', 1);`.

<Note>
  قد يحدث تجاوز إذا كانت قيمة `expr` تتخطى حدود `Decimal64`:`(-1*10^(18 - S), 1*10^(18 - S))`.
  تُهمَل الخانات الزائدة في الجزء الكسري (من دون تقريب).
  تؤدي الخانات الزائدة في الجزء الصحيح إلى رفع استثناء.
</Note>

<Warning>
  تتجاهل التحويلات الخانات الزائدة، وقد تُعطي نتائج غير متوقعة عند التعامل مع مدخلات Float32/Float64 لأن العمليات تُنفَّذ باستخدام تعليمات الفاصلة العائمة.
  على سبيل المثال: `toDecimal64(1.15, 2)` تساوي `1.14` لأن 1.15 \* 100 في الفاصلة العائمة تساوي 114.99.
  يمكنك استخدام قيمة إدخال من النوع String لكي تُجرى العمليات باستخدام النوع الصحيح الأساسي: `toDecimal64('1.15', 2) = 1.15`
</Warning>

**البنية**

```sql theme={null}
toDecimal64(expr, S)
```

**الوسائط**

* `expr` — تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم. [`Expression`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و18، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجِع قيمة عشرية. [`Decimal(18, S)`](/ar/reference/data-types/decimal)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toDecimal64(2, 1) AS a, toTypeName(a) AS type_a,
    toDecimal64(4.2, 2) AS b, toTypeName(b) AS type_b,
    toDecimal64('4.2', 3) AS c, toTypeName(c) AS type_c
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
a:      2.0
type_a: Decimal(18, 1)
b:      4.20
type_b: Decimal(18, 2)
c:      4.200
type_c: Decimal(18, 3)
```

<div id="toDecimal64OrDefault">
  ## toDecimal64OrDefault
</div>

أُضيفت في: v21.11.0

مثل [`toDecimal64`](#toDecimal64)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Decimal(18, S)](/ar/reference/data-types/decimal)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.

**الصيغة**

```sql theme={null}
toDecimal64OrDefault(expr, S[, default])
```

**المعاملات**

* `expr` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)
* `S` — معامل المقياس بين 0 و18، ويحدد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحويل إلى النوع Decimal64(S). [`Decimal64(S)`](/ar/reference/data-types/decimal)

**القيمة المُعادة**

قيمة من النوع Decimal(18, S) عند نجاح العملية، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`Decimal64(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toDecimal64OrDefault(toString(0.0001), 18)
```

```response title=Response theme={null}
0.0001
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)'))
```

```response title=Response theme={null}
-1
```

<div id="toDecimal64OrNull">
  ## toDecimal64OrNull
</div>

أُضيف في: v20.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Decimal(18, S)](/ar/reference/data-types/decimal)، لكنه يُرجع `NULL` عند حدوث خطأ.
وهو يشبه [`toDecimal64`](#toDecimal64)، لكنه يُرجع `NULL` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

الوسائط المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم أو التمثيلات النصية من النوع Float\*.

الوسائط غير المدعومة (تُرجع `NULL`):

* القيم `NaN` و`Inf` من النوع Float\*، أو تمثيلاتها النصية (دون تمييز بين الأحرف الكبيرة والصغيرة).
* التمثيلات النصية للقيم الثنائية والست عشرية.
* القيم التي تتجاوز حدود `Decimal64`:`(-1*10^(18 - S), 1*10^(18 - S))`.

انظر أيضًا:

* [`toDecimal64`](#toDecimal64).
* [`toDecimal64OrZero`](#toDecimal64OrZero).
* [`toDecimal64OrDefault`](#toDecimal64OrDefault).

**الصيغة**

```sql theme={null}
toDecimal64OrNull(expr, S)
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و18، ويحدّد عدد الخانات التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجع قيمة `Decimal(18, S)` عند النجاح، وإلا `NULL`. [`Decimal64(S)`](/ar/reference/data-types/decimal) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2)
```

```response title=Response theme={null}
┌─toDecimal64OrNull('42.7', 2)─┬─toDecimal64OrNull('invalid', 2)─┐
│                        42.70 │                            ᴺᵁᴸᴸ │
└──────────────────────────────┴─────────────────────────────────┘
```

<div id="toDecimal64OrZero">
  ## toDecimal64OrZero
</div>

أُضيف في: v20.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Decimal(18, S)](/ar/reference/data-types/decimal)، لكنه يعيد `0` عند حدوث خطأ.
وهو يشبه [`toDecimal64`](#toDecimal64)، لكنه يعيد `0` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم أو التمثيلات النصية من النوع Float\*.

الوسيطات غير المدعومة (تعيد `0`):

* القيم أو التمثيلات النصية لقيم Float\* `NaN` و`Inf` (دون تمييز بين الأحرف الكبيرة والصغيرة).
* التمثيلات النصية للقيم الثنائية والسداسية العشرية.

<Note>
  إذا تجاوزت قيمة الإدخال حدود `Decimal64`:`(-1*10^(18 - S), 1*10^(18 - S))`، فستعيد الدالة `0`.
</Note>

انظر أيضًا:

* [`toDecimal64`](#toDecimal64).
* [`toDecimal64OrNull`](#toDecimal64OrNull).
* [`toDecimal64OrDefault`](#toDecimal64OrDefault).

**البنية**

```sql theme={null}
toDecimal64OrZero(expr, S)
```

**الوسائط**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)
* `S` — معامل المقياس بين 0 و18، ويحدّد عدد الأرقام التي يمكن أن يحتوي عليها الجزء الكسري من الرقم. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجع قيمة من النوع Decimal(18, S) عند النجاح، وإلا `0`. [`Decimal64(S)`](/ar/reference/data-types/decimal)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2)
```

```response title=Response theme={null}
┌─toDecimal64OrZero('42.7', 2)─┬─toDecimal64OrZero('invalid', 2)─┐
│                        42.70 │                            0.00 │
└──────────────────────────────┴─────────────────────────────────┘
```

<div id="toDecimalString">
  ## toDecimalString
</div>

أُضيفت في: v23.3.0

تحوّل قيمة رقمية إلى String بعدد محدد من الخانات الكسرية.

تقرّب الدالة قيمة الإدخال إلى العدد المحدد من المنازل العشرية. وإذا كانت قيمة الإدخال تحتوي على عدد من الخانات الكسرية أقل
من المطلوب، فستُستكمل النتيجة بأصفار للوصول إلى العدد المحدد بدقة من الخانات الكسرية.

**الصياغة**

```sql theme={null}
toDecimalString(number, scale)
```

**الوسيطات**

* `number` — القيمة العددية المراد تحويلها إلى سلسلة نصية. يمكن أن تكون من أي نوع عددي (Int أو UInt أو Float أو Decimal). [`Int8`](/ar/reference/data-types/int-uint) أو [`Int16`](/ar/reference/data-types/int-uint) أو [`Int32`](/ar/reference/data-types/int-uint) أو [`Int64`](/ar/reference/data-types/int-uint) أو [`UInt8`](/ar/reference/data-types/int-uint) أو [`UInt16`](/ar/reference/data-types/int-uint) أو [`UInt32`](/ar/reference/data-types/int-uint) أو [`UInt64`](/ar/reference/data-types/int-uint) أو [`Float32`](/ar/reference/data-types/float) أو [`Float64`](/ar/reference/data-types/float) أو [`Decimal`](/ar/reference/data-types/decimal)
* `scale` — عدد الخانات التي ستُعرض في الجزء الكسري. ستُقرَّب النتيجة عند الحاجة. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تعرض تمثيلًا نصيًا للعدد بعدد الخانات الكسرية المحدد تمامًا. [`String`](/ar/reference/data-types/string)

**أمثلة**

**تقريب عدد وتنسيقه**

```sql title=Query theme={null}
SELECT toDecimalString(2.1456, 2)
```

```response title=Response theme={null}
┌─toDecimalString(2.1456, 2)─┐
│ 2.15                       │
└────────────────────────────┘
```

**الحشو بالأصفار**

```sql title=Query theme={null}
SELECT toDecimalString(5, 3)
```

```response title=Response theme={null}
┌─toDecimalString(5, 3)─┐
│ 5.000                 │
└───────────────────────┘
```

**أنواع عددية مختلفة**

```sql title=Query theme={null}
SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val,
       toDecimalString(CAST(42.7 AS Float32), 4) AS float_val
```

```response title=Response theme={null}
┌─decimal_val─┬─float_val─┐
│ 123.46      │ 42.7000   │
└─────────────┴───────────┘
```

<div id="toFixedString">
  ## toFixedString
</div>

قُدِّم في: v1.1.0

يحوّل وسيطًا من النوع [`String`](/ar/reference/data-types/string) إلى النوع [`FixedString(N)`](/ar/reference/data-types/fixedstring) (سلسلة نصية ذات طول ثابت مقداره N).

إذا كانت السلسلة النصية تحتوي على عدد بايتات أقل من N، فتُستكمل من اليمين ببايتات null.
إذا كانت السلسلة النصية تحتوي على عدد بايتات أكبر من N، يُطرح استثناء.

**البنية**

```sql theme={null}
toFixedString(s, N)
```

**المعاملات**

* `s` — السلسلة المطلوب تحويلها. [`String`](/ar/reference/data-types/string)
* `N` — طول قيمة FixedString الناتجة. [`const UInt*`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجع قيمة FixedString بطول N. [`FixedString(N)`](/ar/reference/data-types/fixedstring)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toFixedString('foo', 8) AS s;
```

```response title=Response theme={null}
┌─s─────────────┐
│ foo\0\0\0\0\0 │
└───────────────┘
```

<div id="toFloat32">
  ## toFloat32
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Float32](/ar/reference/data-types/float).
يطرح استثناءً في حال حدوث خطأ.

الوسيطات المدعومة:

* قيم من النوع (U)Int\*.
* التمثيلات النصية لـ (U)Int8/16/32/128/256.
* قيم من النوع Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية لـ Float\*، بما في ذلك `NaN` و`Inf` (غير حسّاسة لحالة الأحرف).

الوسيطات غير المدعومة:

* التمثيلات النصية للقيم الثنائية والستّ عشرية، على سبيل المثال `SELECT toFloat32('0xc0fe');`.

انظر أيضًا:

* [`toFloat32OrZero`](#toFloat32OrZero).
* [`toFloat32OrNull`](#toFloat32OrNull).
* [`toFloat32OrDefault`](#toFloat32OrDefault).

**البنية**

```sql theme={null}
toFloat32(expr)
```

**المعاملات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

يُرجع قيمة عددية بفاصلة عائمة 32-بت. [`Float32`](/ar/reference/data-types/float)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT
    toFloat32(42.7),
    toFloat32('42.7'),
    toFloat32('NaN')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toFloat32(42.7):   42.7
toFloat32('42.7'): 42.7
toFloat32('NaN'):  nan
```

<div id="toFloat32OrDefault">
  ## toFloat32OrDefault
</div>

أُضيفت في: v21.11.0

على غرار [`toFloat32`](#toFloat32)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Float32](/ar/reference/data-types/float)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فسيُرجع `0` عند حدوث خطأ.

**الصيغة**

```sql theme={null}
toFloat32OrDefault(expr[, default])
```

**المعاملات**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي ستُعاد إذا لم ينجح التحليل. [`Float32`](/ar/reference/data-types/float)

**القيمة المعادة**

تُرجع قيمة من النوع Float32 عند النجاح، وإلا فتُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`Float32`](/ar/reference/data-types/float)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toFloat32OrDefault('8', CAST('0', 'Float32'))
```

```response title=Response theme={null}
8
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toFloat32OrDefault('abc', CAST('0', 'Float32'))
```

```response title=Response theme={null}
0
```

<div id="toFloat32OrNull">
  ## toFloat32OrNull
</div>

أُضيفت في: v1.1.0

تحوِّل قيمة الإدخال إلى قيمة من النوع [Float32](/ar/reference/data-types/float)، لكنها تُرجع `NULL` في حال حدوث خطأ.
تشبه [`toFloat32`](#toFloat32)، لكنها تُرجع `NULL` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

الوسيطات المدعومة:

* قيم من النوع (U)Int\*.
* تمثيلات نصية لـ (U)Int8/16/32/128/256.
* قيم من النوع Float\*، بما في ذلك `NaN` و`Inf`.
* تمثيلات نصية لـ Float\*، بما في ذلك `NaN` و`Inf` (غير حساسة لحالة الأحرف).

الوسيطات غير المدعومة (تُرجع `NULL`):

* تمثيلات نصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toFloat32OrNull('0xc0fe');`.
* تنسيقات سلاسل نصية غير صالحة.

انظر أيضًا:

* [`toFloat32`](#toFloat32).
* [`toFloat32OrZero`](#toFloat32OrZero).
* [`toFloat32OrDefault`](#toFloat32OrDefault).

**البنية**

```sql theme={null}
toFloat32OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة `Float32` عند النجاح، وإلا `NULL`. [`Float32`](/ar/reference/data-types/float) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toFloat32OrNull('42.7'),
    toFloat32OrNull('NaN'),
    toFloat32OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toFloat32OrNull('42.7'): 42.7
toFloat32OrNull('NaN'):  nan
toFloat32OrNull('abc'):  \N
```

<div id="toFloat32OrZero">
  ## toFloat32OrZero
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Float32](/ar/reference/data-types/float)، ويُرجع `0` في حال حدوث خطأ.
يشبه [`toFloat32`](#toFloat32)، لكنه يُرجع `0` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

انظر أيضًا:

* [`toFloat32`](#toFloat32).
* [`toFloat32OrNull`](#toFloat32OrNull).
* [`toFloat32OrDefault`](#toFloat32OrDefault).

**الصيغة**

```sql theme={null}
toFloat32OrZero(x)
```

**الوسيطات**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجع قيمة عائمة 32-بت عند النجاح، وإلا `0`. [`Float32`](/ar/reference/data-types/float)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toFloat32OrZero('42.7'),
    toFloat32OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toFloat32OrZero('42.7'): 42.7
toFloat32OrZero('abc'):  0
```

<div id="toFloat64">
  ## toFloat64
</div>

أُضيف في: v1.1.0

يحوِّل قيمة إدخال إلى قيمة من النوع [`Float64`](/ar/reference/data-types/float).
يُطلق استثناءً في حال حدوث خطأ.

الوسيطات المدعومة:

* قيم من النوع (U)Int\*.
* التمثيلات النصية للقيم من النوع (U)Int8/16/32/128/256.
* قيم من النوع Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم من النوع Float\*، بما في ذلك `NaN` و`Inf` (من دون حساسية لحالة الأحرف).

الوسيطات غير المدعومة:

* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toFloat64('0xc0fe');`.

انظر أيضًا:

* [`toFloat64OrZero`](#toFloat64OrZero).
* [`toFloat64OrNull`](#toFloat64OrNull).
* [`toFloat64OrDefault`](#toFloat64OrDefault).

**البنية**

```sql theme={null}
toFloat64(expr)
```

**الوسيطات**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

تُرجع قيمة عددية بفاصلة عائمة بدقة 64 بت. [`Float64`](/ar/reference/data-types/float)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toFloat64(42.7),
    toFloat64('42.7'),
    toFloat64('NaN')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toFloat64(42.7):   42.7
toFloat64('42.7'): 42.7
toFloat64('NaN'):  nan
```

<div id="toFloat64OrDefault">
  ## toFloat64OrDefault
</div>

أُضيف في: v21.11.0

مثل [`toFloat64`](#toFloat64)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Float64](/ar/reference/data-types/float)، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فسيتم إرجاع `0` عند حدوث خطأ.

**الصياغة**

```sql theme={null}
toFloat64OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا لم تنجح عملية التحليل. [`Float64`](/ar/reference/data-types/float)

**القيمة المُعادة**

يُرجع قيمة من النوع `Float64` عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو `0` إذا لم يتم تمريرها. [`Float64`](/ar/reference/data-types/float)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toFloat64OrDefault('8', CAST('0', 'Float64'))
```

```response title=Response theme={null}
8
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toFloat64OrDefault('abc', CAST('0', 'Float64'))
```

```response title=Response theme={null}
0
```

<div id="toFloat64OrNull">
  ## toFloat64OrNull
</div>

أُضيف في: v1.1.0

يحوّل قيمة إدخال إلى قيمة من النوع [Float64](/ar/reference/data-types/float)، لكنه يعيد `NULL` عند حدوث خطأ.
يشبه [`toFloat64`](#toFloat64)، لكنه يعيد `NULL` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

الوسيطات المدعومة:

* القيم من النوع (U)Int\*.
* التمثيلات النصية لـ (U)Int8/16/32/128/256.
* القيم من النوع Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية من النوع Float\*، بما في ذلك `NaN` و`Inf` (دون حساسية لحالة الأحرف).

الوسيطات غير المدعومة (تعيد `NULL`):

* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toFloat64OrNull('0xc0fe');`.
* سلاسل نصية بتنسيق غير صالح.

انظر أيضًا:

* [`toFloat64`](#toFloat64).
* [`toFloat64OrZero`](#toFloat64OrZero).
* [`toFloat64OrDefault`](#toFloat64OrDefault).

**الصياغة**

```sql theme={null}
toFloat64OrNull(x)
```

**الوسائط**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد قيمة من النوع `Float64` عند النجاح، وإلا `NULL`. [`Float64`](/ar/reference/data-types/float) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toFloat64OrNull('42.7'),
    toFloat64OrNull('NaN'),
    toFloat64OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toFloat64OrNull('42.7'): 42.7
toFloat64OrNull('NaN'):  nan
toFloat64OrNull('abc'):  \N
```

<div id="toFloat64OrZero">
  ## toFloat64OrZero
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Float64](/ar/reference/data-types/float)، لكنه يعيد `0` في حال حدوث خطأ.
يشبه [`toFloat64`](#toFloat64)، لكنه يعيد `0` بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.

انظر أيضًا:

* [`toFloat64`](#toFloat64).
* [`toFloat64OrNull`](#toFloat64OrNull).
* [`toFloat64OrDefault`](#toFloat64OrDefault).

**البنية**

```sql theme={null}
toFloat64OrZero(x)
```

**الوسائط**

* `x` — تمثيل نصّي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة `Float64` عند النجاح، وإلا `0`. [`Float64`](/ar/reference/data-types/float)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toFloat64OrZero('42.7'),
    toFloat64OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toFloat64OrZero('42.7'): 42.7
toFloat64OrZero('abc'):  0
```

<div id="toInt128">
  ## toInt128
</div>

قُدِّم في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Int128](/ar/reference/data-types/int-uint).
يطرح استثناءً عند حدوث خطأ.
تستخدم الدالة التقريب نحو الصفر، أي إنها تحذف الأرقام الكسرية من الأعداد.

الوسيطات المدعومة:

* القيم أو تمثيلاتها النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toInt128('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int128، فقد يحدث تجاوز علوي أو سفلي في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toInt128OrZero`](#toInt128OrZero).
* [`toInt128OrNull`](#toInt128OrNull).
* [`toInt128OrDefault`](#toInt128OrDefault).

**الصيغة**

```sql theme={null}
toInt128(expr)
```

**الوسائط**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

يُرجع قيمة عدد صحيح من نوع 128 بت. [`Int128`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt128(-128),
    toInt128(-128.8),
    toInt128('-128')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt128(-128):   -128
toInt128(-128.8): -128
toInt128('-128'): -128
```

<div id="toInt128OrDefault">
  ## toInt128OrDefault
</div>

أُضيف في: v21.11.0

مثل [`toInt128`](#toInt128)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int128](/ar/reference/data-types/int-uint)، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجع `0` عند حدوث خطأ.

**البنية**

```sql theme={null}
toInt128OrDefault(expr[, default])
```

**المعاملات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُرجع إذا فشلت عملية التحليل. [`Int128`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجع قيمة من النوع Int128 عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم تُمرَّر. [`Int128`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toInt128OrDefault('-128', CAST('-1', 'Int128'))
```

```response title=Response theme={null}
-128
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toInt128OrDefault('abc', CAST('-1', 'Int128'))
```

```response title=Response theme={null}
-1
```

<div id="toInt128OrNull">
  ## toInt128OrNull
</div>

أُضيف في: v20.8.0

مثل [`toInt128`](#toInt128)، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int128](/ar/reference/data-types/int-uint)، لكنها تُرجع `NULL` عند حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والست عشرية، على سبيل المثال `SELECT toInt128OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int128](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toInt128`](#toInt128).
* [`toInt128OrZero`](#toInt128OrZero).
* [`toInt128OrDefault`](#toInt128OrDefault).

**الصياغة**

```sql theme={null}
toInt128OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع قيمة من النوع Int128، أو `NULL` إذا تعذّر التحويل. [`Int128`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt128OrNull('-128'),
    toInt128OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt128OrNull('-128'): -128
toInt128OrNull('abc'):  \N
```

<div id="toInt128OrZero">
  ## toInt128OrZero
</div>

استُحدثت في: v20.8.0

يحوّل قيمة الإدخال إلى النوع [Int128](/ar/reference/data-types/int-uint)، لكنه يعيد `0` في حال حدوث خطأ.
وهو يشبه [`toInt128`](#toInt128)، لكنه يعيد `0` بدلًا من إطلاق استثناء.

انظر أيضًا:

* [`toInt128`](#toInt128).
* [`toInt128OrNull`](#toInt128OrNull).
* [`toInt128OrDefault`](#toInt128OrDefault).

**البنية**

```sql theme={null}
toInt128OrZero(x)
```

**الوسيطات**

* `x` — قيمة الإدخال المراد تحويلها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`Float*`](/ar/reference/data-types/float) أو [`Decimal`](/ar/reference/data-types/decimal) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime)

**القيمة المُعادة**

تُعيد قيمة الإدخال بعد تحويلها، أو `0` إذا فشل التحويل. [`Int128`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toInt128OrZero('123')
```

```response title=Response theme={null}
123
```

**تُرجِع عمليةُ التحويل عند الفشل صفرًا**

```sql title=Query theme={null}
SELECT toInt128OrZero('abc')
```

```response title=Response theme={null}
0
```

<div id="toInt16">
  ## toInt16
</div>

أُضيفت في: v1.1.0

تحوّل قيمة الإدخال إلى قيمة من النوع [`Int16`](/ar/reference/data-types/int-uint).
تُطلق استثناءً عند حدوث خطأ.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و `Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toInt16('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int16](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعدّ ذلك خطأً.
  على سبيل المثال: `SELECT toInt16(32768) == -32768;`.
</Note>

<Note>
  تستخدم الدالة [rounding towards zero](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)، ما يعني أنها تحذف الخانات الكسرية من الأرقام.
</Note>

انظر أيضًا:

* [`toInt16OrZero`](#toInt16OrZero).
* [`toInt16OrNull`](#toInt16OrNull).
* [`toInt16OrDefault`](#toInt16OrDefault).

**الصياغة**

```sql theme={null}
toInt16(expr)
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

يُرجع قيمة عدد صحيح بطول 16 بت. [`Int16`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt16(-16),
    toInt16(-16.16),
    toInt16('-16')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt16(-16):    -16
toInt16(-16.16): -16
toInt16('-16'):  -16
```

<div id="toInt16OrDefault">
  ## toInt16OrDefault
</div>

أُضيفت في: v21.11.0

مثل [`toInt16`](#toInt16)، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int16](/ar/reference/data-types/int-uint)، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجَع القيمة `0` عند حدوث خطأ.

**البنية**

```sql theme={null}
toInt16OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل. [`Int16`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُعيد قيمة من النوع Int16 عند النجاح، وإلا يُعيد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. [`Int16`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toInt16OrDefault('-16', CAST('-1', 'Int16'))
```

```response title=Response theme={null}
-16
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toInt16OrDefault('abc', CAST('-1', 'Int16'))
```

```response title=Response theme={null}
-1
```

<div id="toInt16OrNull">
  ## toInt16OrNull
</div>

قُدِّمت في: v1.1.0

مثل [`toInt16`](#toInt16)، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int16](/ar/reference/data-types/int-uint)، لكنها تُعيد `NULL` عند حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُعيد `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل `SELECT toInt16OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int16](/ar/reference/data-types/int-uint)، يحدث فيض أو نقص في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toInt16`](#toInt16).
* [`toInt16OrZero`](#toInt16OrZero).
* [`toInt16OrDefault`](#toInt16OrDefault).

**الصيغة**

```sql theme={null}
toInt16OrNull(x)
```

**الوسائط**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد قيمة من النوع `Int16`، أو `NULL` إذا تعذر التحويل. [`Int16`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT
    toInt16OrNull('-16'),
    toInt16OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt16OrNull('-16'): -16
toInt16OrNull('abc'): \N
```

<div id="toInt16OrZero">
  ## toInt16OrZero
</div>

أُضيف في: v1.1.0

مثل [`toInt16`](#toInt16)، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int16](/ar/reference/data-types/int-uint)، لكنها تُرجع `0` عند حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والستّ عشرية، على سبيل المثال `SELECT toInt16OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int16](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

راجع أيضًا:

* [`toInt16`](#toInt16).
* [`toInt16OrNull`](#toInt16OrNull).
* [`toInt16OrDefault`](#toInt16OrDefault).

**الصياغة**

```sql theme={null}
toInt16OrZero(x)
```

**المعاملات**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجع قيمة من النوع Int16، أو `0` إذا تعذّر التحويل. [`Int16`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt16OrZero('16'),
    toInt16OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt16OrZero('16'): 16
toInt16OrZero('abc'): 0
```

<div id="toInt256">
  ## toInt256
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [Int256](/ar/reference/data-types/int-uint).
يُطلق استثناءً في حال حدوث خطأ.
تستخدم الدالة التقريب نحو الصفر، ما يعني أنها تحذف الأرقام الكسرية من الأعداد.

الوسائط المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسائط غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toInt256('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود Int256، فقد يحدث فيض أو نقص في النتيجة.
  لا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toInt256OrZero`](#toInt256OrZero).
* [`toInt256OrNull`](#toInt256OrNull).
* [`toInt256OrDefault`](#toInt256OrDefault).

**البنية**

```sql theme={null}
toInt256(expr)
```

**الوسيطات**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المعادة**

يُرجع قيمة عدد صحيح من 256 بت. [`Int256`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt256(-256),
    toInt256(-256.256),
    toInt256('-256')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt256(-256):     -256
toInt256(-256.256): -256
toInt256('-256'):   -256
```

<div id="toInt256OrDefault">
  ## toInt256OrDefault
</div>

أُضيفت في: v21.11.0

مثل [`toInt256`](#toInt256)، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int256](/ar/reference/data-types/int-uint)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجِع `0` عند حدوث خطأ.

**الصياغة**

```sql theme={null}
toInt256OrDefault(expr[, default])
```

**المعاملات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل. [`Int256`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تُرجع قيمة من النوع Int256 عند النجاح، وإلا فتُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`Int256`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toInt256OrDefault('-256', CAST('-1', 'Int256'))
```

```response title=Response theme={null}
-256
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toInt256OrDefault('abc', CAST('-1', 'Int256'))
```

```response title=Response theme={null}
-1
```

<div id="toInt256OrNull">
  ## toInt256OrNull
</div>

تم تقديمها في: v20.8.0

مثل [`toInt256`](#toInt256)، تحوّل هذه الدالة قيمة إدخال إلى قيمة من النوع [Int256](/ar/reference/data-types/int-uint)، لكنها تعيد `NULL` عند حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تعيد `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toInt256OrNull('0xc0fe');`.

<Note>
  إذا تعذر تمثيل قيمة الإدخال ضمن حدود [Int256](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعد ذلك خطأً.
</Note>

راجع أيضًا:

* [`toInt256`](#toInt256).
* [`toInt256OrZero`](#toInt256OrZero).
* [`toInt256OrDefault`](#toInt256OrDefault).

**البنية**

```sql theme={null}
toInt256OrNull(x)
```

**المعاملات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد قيمة من النوع Int256، أو `NULL` إذا تعذّر التحويل. [`Int256`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt256OrNull('-256'),
    toInt256OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt256OrNull('-256'): -256
toInt256OrNull('abc'):  \N
```

<div id="toInt256OrZero">
  ## toInt256OrZero
</div>

استُحدث في: v20.8.0

يحوّل قيمة مُدخلة إلى النوع [Int256](/ar/reference/data-types/int-uint)، لكنه يعيد `0` في حال حدوث خطأ.
يشبه [`toInt256`](#toInt256)، لكنه يعيد `0` بدلًا من إثارة استثناء.

انظر أيضًا:

* [`toInt256`](#toInt256).
* [`toInt256OrNull`](#toInt256OrNull).
* [`toInt256OrDefault`](#toInt256OrDefault).

**البنية**

```sql theme={null}
toInt256OrZero(x)
```

**الوسيطات**

* `x` — قيمة الإدخال المراد تحويلها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`Float*`](/ar/reference/data-types/float) أو [`Decimal`](/ar/reference/data-types/decimal) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime)

**القيمة المُعادة**

تُرجِع قيمة الإدخال بعد تحويلها، وإلا فتُرجِع `0` إذا فشل التحويل. [`Int256`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toInt256OrZero('123')
```

```response title=Response theme={null}
123
```

**تُرجِع عملية التحويل الفاشلة صفراً**

```sql title=Query theme={null}
SELECT toInt256OrZero('abc')
```

```response title=Response theme={null}
0
```

<div id="toInt32">
  ## toInt32
</div>

أُضيفت في: v1.1.0

تحوِّل قيمة إدخال إلى قيمة من النوع [`Int32`](/ar/reference/data-types/int-uint).
تطرح استثناءً في حال حدوث خطأ.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والستّ عشرية، على سبيل المثال `SELECT toInt32('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int32](/ar/reference/data-types/int-uint)، فستتجاوز النتيجة الحدّ الأعلى أو الأدنى للنطاق.
  ولا يُعدّ ذلك خطأً.
  على سبيل المثال: `SELECT toInt32(2147483648) == -2147483648;`
</Note>

<Note>
  تستخدم الدالة [التقريب نحو الصفر](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
</Note>

انظر أيضًا:

* [`toInt32OrZero`](#toInt32OrZero).
* [`toInt32OrNull`](#toInt32OrNull).
* [`toInt32OrDefault`](#toInt32OrDefault).

**الصياغة**

```sql theme={null}
toInt32(expr)
```

**الوسيطات**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`Expression`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

يُرجع قيمة عددٍ صحيحٍ مؤلفة من 32 بت. [`Int32`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT
    toInt32(-32),
    toInt32(-32.32),
    toInt32('-32')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt32(-32):    -32
toInt32(-32.32): -32
toInt32('-32'):  -32
```

<div id="toInt32OrDefault">
  ## toInt32OrDefault
</div>

قُدِّمت في: v21.11.0

مثل [`toInt32`](#toInt32)، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int32](/ar/reference/data-types/int-uint)، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجِع `0` عند حدوث خطأ.

**البنية**

```sql theme={null}
toInt32OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُرجع إذا فشل التحليل. [`Int32`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجع قيمة من النوع Int32 عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`Int32`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toInt32OrDefault('-32', CAST('-1', 'Int32'))
```

```response title=Response theme={null}
-32
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toInt32OrDefault('abc', CAST('-1', 'Int32'))
```

```response title=Response theme={null}
-1
```

<div id="toInt32OrNull">
  ## toInt32OrNull
</div>

طُرحت في: v1.1.0

مثل [`toInt32`](#toInt32)، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int32](/ar/reference/data-types/int-uint)، لكنها تُرجع `NULL` عند حدوث خطأ.

الوسائط المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسائط غير المدعومة (تُرجع `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toInt32OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int32](/ar/reference/data-types/int-uint)، يحدث تجاوز للحد الأعلى أو الأدنى في النتيجة.
  ولا يُعدّ ذلك خطأ.
</Note>

انظر أيضًا:

* [`toInt32`](#toInt32).
* [`toInt32OrZero`](#toInt32OrZero).
* [`toInt32OrDefault`](#toInt32OrDefault).

**الصياغة**

```sql theme={null}
toInt32OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من النوع Int32، أو `NULL` إذا تعذّر التحويل. [`Int32`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt32OrNull('-32'),
    toInt32OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt32OrNull('-32'): -32
toInt32OrNull('abc'): \N
```

<div id="toInt32OrZero">
  ## toInt32OrZero
</div>

أُضيف في: v1.1.0

على غرار [`toInt32`](#toInt32)، تُحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int32](/ar/reference/data-types/int-uint)، لكنها تُرجع `0` عند حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toInt32OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int32](/ar/reference/data-types/int-uint)، فسيحدث تجاوز سعة أو نقص تمثيل في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toInt32`](#toInt32).
* [`toInt32OrNull`](#toInt32OrNull).
* [`toInt32OrDefault`](#toInt32OrDefault).

**البنية**

```sql theme={null}
toInt32OrZero(x)
```

**المعاملات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجع قيمة من النوع Int32، وإلا فستُرجع `0` إذا تعذّر التحويل. [`Int32`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt32OrZero('32'),
    toInt32OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt32OrZero('32'): 32
toInt32OrZero('abc'): 0
```

<div id="toInt64">
  ## toInt64
</div>

أُضيف في: v1.1.0

يحوّل قيمة إدخال إلى قيمة من النوع [`Int64`](/ar/reference/data-types/int-uint).
يطرح استثناءً في حال حدوث خطأ.

الوسائط المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسائط غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toInt64('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int64](/ar/reference/data-types/int-uint)، فقد يحدث تجاوز علوي أو سفلي في النتيجة.
  ولا يُعدّ ذلك خطأً.
  على سبيل المثال: `SELECT toInt64(9223372036854775808) == -9223372036854775808;`
</Note>

<Note>
  تستخدم الدالة [التقريب نحو الصفر](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)، ما يعني أنها تحذف الأرقام الكسرية من الأعداد.
</Note>

انظر أيضًا:

* [`toInt64OrZero`](#toInt64OrZero).
* [`toInt64OrNull`](#toInt64OrNull).
* [`toInt64OrDefault`](#toInt64OrDefault).

**البنية**

```sql theme={null}
toInt64(expr)
```

**الوسائط**

* `expr` — تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم. المدعوم: القيم أو التمثيلات النصية من النوع (U)Int\*، والقيم من النوع Float\*. غير المدعوم: التمثيلات النصية لقيم Float\*، بما في ذلك NaN وInf، والتمثيلات النصية للقيم الثنائية والسداسية العشرية. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

تُرجِع قيمة عدد صحيح من 64 بت. [`Int64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt64(-64),
    toInt64(-64.64),
    toInt64('-64')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt64(-64):    -64
toInt64(-64.64): -64
toInt64('-64'):  -64
```

<div id="toInt64OrDefault">
  ## toInt64OrDefault
</div>

أُضيف في: v21.11.0

مثل [`toInt64`](#toInt64)، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int64](/ar/reference/data-types/int-uint)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجع `0` عند حدوث خطأ.

**البنية**

```sql theme={null}
toInt64OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل. [`Int64`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُعاد قيمة من النوع Int64 عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إن لم يتم ذلك. [`Int64`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toInt64OrDefault('-64', CAST('-1', 'Int64'))
```

```response title=Response theme={null}
-64
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toInt64OrDefault('abc', CAST('-1', 'Int64'))
```

```response title=Response theme={null}
-1
```

<div id="toInt64OrNull">
  ## toInt64OrNull
</div>

أُضيف في: v1.1.0

مثل [`toInt64`](#toInt64)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int64](/ar/reference/data-types/int-uint)، لكنها تعيد `NULL` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تعيد `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toInt64OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int64](/ar/reference/data-types/int-uint)، يحدث تجاوز للحد الأعلى أو الأدنى في النتيجة.
  ولا يُعد ذلك خطأ.
</Note>

انظر أيضًا:

* [`toInt64`](#toInt64).
* [`toInt64OrZero`](#toInt64OrZero).
* [`toInt64OrDefault`](#toInt64OrDefault).

**البنية**

```sql theme={null}
toInt64OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من النوع Int64، أو `NULL` إذا تعذر التحويل. [`Int64`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt64OrNull('-64'),
    toInt64OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt64OrNull('-64'): -64
toInt64OrNull('abc'): \N
```

<div id="toInt64OrZero">
  ## toInt64OrZero
</div>

قُدِّم في: v1.1.0

يحوّل قيمة إدخال إلى النوع [Int64](/ar/reference/data-types/int-uint)، لكنه يعيد `0` في حال حدوث خطأ.
يشبه [`toInt64`](#toInt64)، لكنه يعيد `0` بدلًا من إطلاق استثناء.

انظر أيضًا:

* [`toInt64`](#toInt64).
* [`toInt64OrNull`](#toInt64OrNull).
* [`toInt64OrDefault`](#toInt64OrDefault).

**الصياغة**

```sql theme={null}
toInt64OrZero(x)
```

**الوسائط**

* `x` — قيمة الإدخال المراد تحويلها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`Float*`](/ar/reference/data-types/float) أو [`Decimal`](/ar/reference/data-types/decimal) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime)

**القيمة المُعادة**

تُعيد قيمة الإدخال بعد تحويلها، أو `0` إذا فشل التحويل. [`Int64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toInt64OrZero('123')
```

```response title=Response theme={null}
123
```

**يعيد التحويل الفاشل صفراً**

```sql title=Query theme={null}
SELECT toInt64OrZero('abc')
```

```response title=Response theme={null}
0
```

<div id="toInt8">
  ## toInt8
</div>

أُضيفت في: v1.1.0

تحوّل قيمة الإدخال إلى قيمة من النوع [`Int8`](/ar/reference/data-types/int-uint).
تُطلق استثناءً في حال حدوث خطأ.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toInt8('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int8](/ar/reference/data-types/int-uint)، يحدث تجاوز سعة أو نقص سعة في النتيجة.
  ولا يُعد ذلك خطأً.
  على سبيل المثال: `SELECT toInt8(128) == -128;`.
</Note>

<Note>
  تستخدم الدالة [التقريب نحو الصفر](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)، أي إنها تحذف الخانات الكسرية من الأرقام.
</Note>

انظر أيضًا:

* [`toInt8OrZero`](#toInt8OrZero).
* [`toInt8OrNull`](#toInt8OrNull).
* [`toInt8OrDefault`](#toInt8OrDefault).

**البنية**

```sql theme={null}
toInt8(expr)
```

**المعاملات**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

يعيد قيمة عدد صحيح من 8 بتات. [`Int8`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt8(-8),
    toInt8(-8.8),
    toInt8('-8')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt8(-8):   -8
toInt8(-8.8): -8
toInt8('-8'): -8
```

<div id="toInt8OrDefault">
  ## toInt8OrDefault
</div>

أُضيف في: v21.11.0

مثل [`toInt8`](#toInt8)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int8](/ar/reference/data-types/int-uint)، لكنها تُرجع القيمة الافتراضية عند حدوث `خطأ`.
إذا لم يتم تمرير قيمة `default`، فستُرجع `0` عند حدوث `خطأ`.

**الصيغة**

```sql theme={null}
toInt8OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — `expression` يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا لم تنجح عملية التحليل. [`Int8`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تُعاد قيمة من النوع Int8 عند النجاح، وإلا فتُعاد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. [`Int8`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toInt8OrDefault('-8', CAST('-1', 'Int8'))
```

```response title=Response theme={null}
-8
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toInt8OrDefault('abc', CAST('-1', 'Int8'))
```

```response title=Response theme={null}
-1
```

<div id="toInt8OrNull">
  ## toInt8OrNull
</div>

أُضيف في: v1.1.0

مثل [`toInt8`](#toInt8)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int8](/ar/reference/data-types/int-uint)، لكنها تُرجع `NULL` عند حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل `SELECT toInt8OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int8](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعدّ ذلك خطأ.
</Note>

انظر أيضًا:

* [`toInt8`](#toInt8).
* [`toInt8OrZero`](#toInt8OrZero).
* [`toInt8OrDefault`](#toInt8OrDefault).

**البنية**

```sql theme={null}
toInt8OrNull(x)
```

**الوسائط**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد قيمة من النوع Int8، أو `NULL` إذا تعذّر التحويل. [`Int8`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT
    toInt8OrNull('-8'),
    toInt8OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt8OrNull('-8'):  -8
toInt8OrNull('abc'): \N
```

<div id="toInt8OrZero">
  ## toInt8OrZero
</div>

أُضيف في: v1.1.0

مثل [`toInt8`](#toInt8)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [Int8](/ar/reference/data-types/int-uint)، لكنها تعيد `0` عند حدوث خطأ.

الوسائط المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسائط غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toInt8OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [Int8](/ar/reference/data-types/int-uint)، يحدث تجاوز علوي أو سفلي في النتيجة.
  ولا يُعدّ ذلك خطأ.
</Note>

انظر أيضًا:

* [`toInt8`](#toInt8).
* [`toInt8OrNull`](#toInt8OrNull).
* [`toInt8OrDefault`](#toInt8OrDefault).

**البنية**

```sql theme={null}
toInt8OrZero(x)
```

**المعاملات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من النوع `Int8`، وإلا فيُعيد `0` إذا لم ينجح التحويل. [`Int8`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toInt8OrZero('8'),
    toInt8OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toInt8OrZero('8'): 8
toInt8OrZero('abc'): 0
```

<div id="toInterval">
  ## toInterval
</div>

أُضيفت في: v25.4.0

تنشئ قيمة Interval من قيمة رقمية وسلسلة نصية للوحدة.

توفّر هذه الدالة طريقة موحّدة لإنشاء فترات زمنية من أنواع مختلفة (ثوانٍ، دقائق، ساعات، أيام، أسابيع، أشهر، أرباع سنوية، سنوات)
باستخدام دالة واحدة فقط، وذلك عبر تحديد الوحدة كسلسلة نصية. سلسلة الوحدة غير حساسة لحالة الأحرف.

وهذا يكافئ استدعاء دوال مخصّصة لكل نوع مثل `toIntervalSecond` و`toIntervalMinute` و`toIntervalDay` وغيرها،
لكنه يتيح تحديد الوحدة ديناميكيًا بوصفها معامل String.

**الصياغة**

```sql theme={null}
toInterval(value, unit)
```

**الوسائط**

* `value` — القيمة الرقمية التي تمثل عدد الوحدات. يمكن أن تكون من أي نوع رقمي. [`Int8`](/ar/reference/data-types/int-uint) أو [`Int16`](/ar/reference/data-types/int-uint) أو [`Int32`](/ar/reference/data-types/int-uint) أو [`Int64`](/ar/reference/data-types/int-uint) أو [`UInt8`](/ar/reference/data-types/int-uint) أو [`UInt16`](/ar/reference/data-types/int-uint) أو [`UInt32`](/ar/reference/data-types/int-uint) أو [`UInt64`](/ar/reference/data-types/int-uint) أو [`Float32`](/ar/reference/data-types/float) أو [`Float64`](/ar/reference/data-types/float)
* `unit` — وحدة الزمن. يجب أن تكون سلسلة نصية ثابتة. القيم الصالحة هي: 'nanosecond' و'microsecond' و'millisecond' و'second' و'minute' و'hour' و'day' و'week' و'month' و'quarter' و'year'. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجع قيمة Interval من النوع المحدد. يعتمد نوع النتيجة على الوحدة: IntervalNanosecond أو IntervalMicrosecond أو IntervalMillisecond أو IntervalSecond أو IntervalMinute أو IntervalHour أو IntervalDay أو IntervalWeek أو IntervalMonth أو IntervalQuarter أو IntervalYear. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**إنشاء قيم Interval بوحدات مختلفة**

```sql title=Query theme={null}
SELECT
    toInterval(5, 'second') AS seconds,
    toInterval(3, 'day') AS days,
    toInterval(2, 'month') AS months
```

```response title=Response theme={null}
┌─seconds─┬─days─┬─months─┐
│ 5       │ 3    │ 2      │
└─────────┴──────┴────────┘
```

**استخدم الفترات في العمليات الحسابية على التواريخ**

```sql title=Query theme={null}
SELECT
    now() AS current_time,
    now() + toInterval(1, 'hour') AS one_hour_later,
    now() - toInterval(7, 'day') AS week_ago
```

```response title=Response theme={null}
┌─────────current_time─┬──one_hour_later─────┬────────────week_ago─┐
│ 2025-01-04 10:30:00  │ 2025-01-04 11:30:00 │ 2024-12-28 10:30:00 │
└──────────────────────┴─────────────────────┴─────────────────────┘
```

**إنشاء الفاصل الزمني ديناميكيًا**

```sql title=Query theme={null}
SELECT toDate('2025-01-01') + toInterval(number, 'day') AS dates
FROM numbers(5)
```

```response title=Response theme={null}
┌──────dates─┐
│ 2025-01-01 │
│ 2025-01-02 │
│ 2025-01-03 │
│ 2025-01-04 │
│ 2025-01-05 │
└────────────┘
```

<div id="toIntervalDay">
  ## toIntervalDay
</div>

أُضيف في: v1.1.0

يُرجع فاصلًا زمنيًا من `n` يومًا من نوع البيانات [`IntervalDay`](/ar/reference/data-types/special-data-types/interval).

**الصياغة**

```sql theme={null}
toIntervalDay(n)
```

**الوسيطات**

* `n` — عدد الأيام. الأعداد الصحيحة أو تمثيلاتها النصية، وكذلك الأعداد العائمة. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تُرجع فترة زمنية من `n` أيام. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH
    toDate('2025-06-15') AS date,
    toIntervalDay(5) AS interval_to_days
SELECT date + interval_to_days AS result
```

```response title=Response theme={null}
┌─────result─┐
│ 2025-06-20 │
└────────────┘
```

<div id="toIntervalHour">
  ## toIntervalHour
</div>

أُضيف في: v1.1.0

يعيد interval مقداره `n` ساعة من نوع البيانات [`IntervalHour`](/ar/reference/data-types/special-data-types/interval).

**الصياغة**

```sql theme={null}
toIntervalHour(n)
```

**المعاملات**

* `n` — عدد الساعات. أعداد صحيحة أو تمثيلاتها النصية، وأعداد عشرية. [`Int*`](/ar/reference/data-types/int-uint) أو [`UInt*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد فاصلًا زمنيًا مقداره `n` ساعة. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH
    toDate('2025-06-15') AS date,
    toIntervalHour(12) AS interval_to_hours
SELECT date + interval_to_hours AS result
```

```response title=Response theme={null}
┌──────────────result─┐
│ 2025-06-15 12:00:00 │
└─────────────────────┘
```

<div id="toIntervalMicrosecond">
  ## toIntervalMicrosecond
</div>

قُدِّم في: v22.6.0

يُرجع فاصلًا زمنيًا مقداره `n` ميكروثانية من نوع البيانات [`IntervalMicrosecond`](/ar/reference/data-types/special-data-types/interval).

**الصياغة**

```sql theme={null}
toIntervalMicrosecond(n)
```

**الوسيطات**

* `n` — عدد الميكروثواني. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تعيد قيمة `Interval` مقدارها `n` ميكروثانية. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH
    toDateTime('2025-06-15') AS date,
    toIntervalMicrosecond(30) AS interval_to_microseconds
SELECT date + interval_to_microseconds AS result
```

```response title=Response theme={null}
┌─────────────────────result─┐
│ 2025-06-15 00:00:00.000030 │
└────────────────────────────┘
```

<div id="toIntervalMillisecond">
  ## toIntervalMillisecond
</div>

تم تقديمه في: v22.6.0

يعيد فاصلًا زمنيًا مقداره `n` مللي ثانية من نوع البيانات [IntervalMillisecond](/ar/reference/data-types/special-data-types/interval).

**البنية**

```sql theme={null}
toIntervalMillisecond(n)
```

**المعاملات**

* `n` — عدد المللي ثواني. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجِع فترة زمنية مقدارها `n` مللي ثانية. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH
    toDateTime('2025-06-15') AS date,
    toIntervalMillisecond(30) AS interval_to_milliseconds
SELECT date + interval_to_milliseconds AS result
```

```response title=Response theme={null}
┌──────────────────result─┐
│ 2025-06-15 00:00:00.030 │
└─────────────────────────┘
```

<div id="toIntervalMinute">
  ## toIntervalMinute
</div>

أُضيفت في: v1.1.0

تعيد فاصلًا زمنيًا مقداره `n` دقيقة من نوع البيانات [`IntervalMinute`](/ar/reference/data-types/special-data-types/interval).

**البنية**

```sql theme={null}
toIntervalMinute(n)
```

**المعاملات**

* `n` — عدد الدقائق. الأعداد الصحيحة أو تمثيلاتها النصية، والأعداد العائمة. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجع فاصلًا زمنيًا مقداره `n` دقيقة. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
WITH
    toDate('2025-06-15') AS date,
    toIntervalMinute(12) AS interval_to_minutes
SELECT date + interval_to_minutes AS result
```

```response title=Response theme={null}
┌──────────────result─┐
│ 2025-06-15 00:12:00 │
└─────────────────────┘
```

<div id="toIntervalMonth">
  ## toIntervalMonth
</div>

أُضيف في: v1.1.0

يعيد فاصلًا زمنيًا مقداره `n` شهرًا من نوع البيانات [`IntervalMonth`](/ar/reference/data-types/special-data-types/interval).

**البنية**

```sql theme={null}
toIntervalMonth(n)
```

**الوسيطات**

* `n` — عدد الأشهر. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع فترةً مقدارها `n` شهرًا. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال استخدام**

```sql title=Query theme={null}
WITH
    toDate('2025-06-15') AS date,
    toIntervalMonth(1) AS interval_to_month
SELECT date + interval_to_month AS result
```

```response title=Response theme={null}
┌─────result─┐
│ 2025-07-15 │
└────────────┘
```

<div id="toIntervalNanosecond">
  ## toIntervalNanosecond
</div>

قُدِّم في: v22.6.0

يعيد فاصلًا زمنيًا مقداره `n` نانوثانية من نوع البيانات [`IntervalNanosecond`](/ar/reference/data-types/special-data-types/interval).

**الصياغة**

```sql theme={null}
toIntervalNanosecond(n)
```

**الوسيطات**

* `n` — عدد النانوثواني. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع فاصلًا زمنيًا مقداره `n` نانوثانية. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال استخدام**

```sql title=Query theme={null}
WITH
    toDateTime('2025-06-15') AS date,
    toIntervalNanosecond(30) AS interval_to_nanoseconds
SELECT date + interval_to_nanoseconds AS result
```

```response title=Response theme={null}
┌────────────────────────result─┐
│ 2025-06-15 00:00:00.000000030 │
└───────────────────────────────┘
```

<div id="toIntervalQuarter">
  ## toIntervalQuarter
</div>

قُدِّمت في: v1.1.0

تعيد فاصلًا زمنيًا من `n` أرباع من نوع البيانات [`IntervalQuarter`](/ar/reference/data-types/special-data-types/interval).

**الصياغة**

```sql theme={null}
toIntervalQuarter(n)
```

**الوسيطات**

* `n` — عدد أرباع السنة. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يُرجع فاصلًا زمنيًا مقداره `n` من أرباع السنة. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH
    toDate('2025-06-15') AS date,
    toIntervalQuarter(1) AS interval_to_quarter
SELECT date + interval_to_quarter AS result
```

```response title=Response theme={null}
┌─────result─┐
│ 2025-09-15 │
└────────────┘
```

<div id="toIntervalSecond">
  ## toIntervalSecond
</div>

استُحدثت في: v1.1.0

تعيد قيمة `interval` من `n` ثانية، من نوع البيانات [`IntervalSecond`](/ar/reference/data-types/special-data-types/interval).

**البنية**

```sql theme={null}
toIntervalSecond(n)
```

**الوسيطات**

* `n` — عدد الثواني. الأعداد الصحيحة أو تمثيلاتها النصية، والأعداد ذات الفاصلة العائمة. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يُرجِع فاصلًا زمنيًا مقداره `n` ثانية. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH
    toDate('2025-06-15') AS date,
    toIntervalSecond(30) AS interval_to_seconds
SELECT date + interval_to_seconds AS result
```

```response title=Response theme={null}
┌──────────────result─┐
│ 2025-06-15 00:00:30 │
└─────────────────────┘
```

<div id="toIntervalWeek">
  ## toIntervalWeek
</div>

أُضيفت في: v1.1.0

تعيد فاصلًا زمنيًا مقداره `n` أسبوعًا من نوع البيانات [`IntervalWeek`](/ar/reference/data-types/special-data-types/interval).

**الصياغة**

```sql theme={null}
toIntervalWeek(n)
```

**المعاملات**

* `n` — عدد الأسابيع. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد فترة `n` أسابيع. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH
    toDate('2025-06-15') AS date,
    toIntervalWeek(1) AS interval_to_week
SELECT date + interval_to_week AS result
```

```response title=Response theme={null}
┌─────result─┐
│ 2025-06-22 │
└────────────┘
```

<div id="toIntervalYear">
  ## toIntervalYear
</div>

أُضيف في: v1.1.0

يعيد interval من `n` سنة من نوع البيانات [`IntervalYear`](/ar/reference/data-types/special-data-types/interval).

**الصيغة**

```sql theme={null}
toIntervalYear(n)
```

**المعاملات**

* `n` — عدد السنوات. [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float) أو [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد فاصلًا زمنيًا مقداره `n` سنة. [`Interval`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH
    toDate('2024-06-15') AS date,
    toIntervalYear(1) AS interval_to_year
SELECT date + interval_to_year AS result
```

```response title=Response theme={null}
┌─────result─┐
│ 2025-06-15 │
└────────────┘
```

<div id="toLowCardinality">
  ## toLowCardinality
</div>

قُدِّم في: v18.12.0

يحوّل وسيط الإدخال إلى إصدار [LowCardinality](/ar/reference/data-types/lowcardinality) من نوع البيانات نفسه.

<Tip>
  للتحويل من نوع البيانات `LowCardinality` إلى نوع بيانات عادي، استخدم الدالة [CAST](#CAST).
  على سبيل المثال: `CAST(x AS String)`.
</Tip>

**البنية**

```sql theme={null}
toLowCardinality(expr)
```

**الوسائط**

* `expr` — تعبير ينتج أحد أنواع البيانات المدعومة. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`Date`](/ar/reference/data-types/date) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)

**القيمة المُعادة**

يعيد قيمة الإدخال بعد تحويلها إلى نوع البيانات `LowCardinality`. [`LowCardinality`](/ar/reference/data-types/lowcardinality)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toLowCardinality('1')
```

```response title=Response theme={null}
┌─toLowCardinality('1')─┐
│ 1                     │
└───────────────────────┘
```

<div id="toString">
  ## toString
</div>

قُدِّمت في: v1.1.0

تحوِّل القيم إلى تمثيلها النصي.
وبالنسبة إلى وسيطات DateTime، يمكن أن تأخذ الدالة وسيطة String ثانية تحتوي على اسم المنطقة الزمنية.

**البنية**

```sql theme={null}
toString(value[, timezone])
```

**الوسائط**

* `value` — القيمة المراد تحويلها إلى سلسلة نصية. [`Any`](/ar/reference/data-types/index)
* `timezone` — اختياري. اسم المنطقة الزمنية لتحويل DateTime. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد تمثيلًا نصيًا لقيمة الإدخال. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    now() AS ts,
    time_zone,
    toString(ts, time_zone) AS str_tz_datetime
FROM system.time_zones
WHERE time_zone LIKE 'Europe%'
LIMIT 10
```

```response title=Response theme={null}
┌──────────────────ts─┬─time_zone─────────┬─str_tz_datetime─────┐
│ 2023-09-08 19:14:59 │ Europe/Amsterdam  │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Andorra    │ 2023-09-08 21:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Astrakhan  │ 2023-09-08 23:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Athens     │ 2023-09-08 22:14:59 │
│ 2023-09-08 19:14:59 │ Europe/Belfast    │ 2023-09-08 20:14:59 │
└─────────────────────┴───────────────────┴─────────────────────┘
```

<div id="toStringCutToZero">
  ## toStringCutToZero
</div>

أُضيفت في: v1.1.0

تقبل argument من النوع [String](/ar/reference/data-types/string) أو [FixedString](/ar/reference/data-types/fixedstring)، وتُرجع قيمة من النوع String تحتوي على نسخة من السلسلة الأصلية مقصوصة عند أول بايت صفري.

تُعد البايتات الصفرية (`\0`) بمثابة مُنهِيات للسلاسل.
تكون هذه الدالة مفيدة لمعالجة السلاسل بأسلوب C أو البيانات الثنائية، حيث تشير البايتات الصفرية إلى نهاية المحتوى المفيد.

**الصياغة**

```sql theme={null}
toStringCutToZero(s)
```

**الوسائط**

* `s` — قيمة من النوع String أو FixedString المراد معالجتها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المُعادة**

تُرجع String تحتوي على الأحرف التي تسبق أول بايت صفري. [`String`](/ar/reference/data-types/string)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toStringCutToZero('hello'),
    toStringCutToZero('hello\0world')
```

```response title=Response theme={null}
┌─toStringCutToZero('hello')─┬─toStringCutToZero('hello\\0world')─┐
│ hello                      │ hello                             │
└────────────────────────────┴───────────────────────────────────┘
```

<div id="toTime">
  ## toTime
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى النوع [Time](/ar/reference/data-types/time).
يدعم التحويل من String وFixedString وDateTime أو من الأنواع الرقمية التي تمثل عدد الثواني منذ منتصف الليل.

**البنية**

```sql theme={null}
toTime(x)
```

**الوسيطات**

* `x` — قيمة الإدخال المراد تحويلها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`DateTime`](/ar/reference/data-types/datetime) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)

**القيمة المعادة**

تُرجِع القيمة المُحوَّلة. [`Time`](/ar/reference/data-types/time)

**أمثلة**

**تحويل String إلى Time**

```sql title=Query theme={null}
SELECT toTime('14:30:25')
```

```response title=Response theme={null}
14:30:25
```

**التحويل من DateTime إلى Time**

```sql title=Query theme={null}
SELECT toTime(toDateTime('2025-04-15 14:30:25'))
```

```response title=Response theme={null}
14:30:25
```

**تحويل القيم الصحيحة إلى Time**

```sql title=Query theme={null}
SELECT toTime(52225)
```

```response title=Response theme={null}
14:30:25
```

<div id="toTime64">
  ## toTime64
</div>

أُضيف في: v25.6.0

يحوّل قيمة الإدخال إلى النوع [Time64](/ar/reference/data-types/time64).
ويدعم التحويل من String وFixedString وDateTime64 أو من أنواع رقمية تمثل الميكروثواني منذ منتصف الليل.
ويوفّر دقة بالميكروثانية لقيم الوقت.

**البنية**

```sql theme={null}
toTime64(x)
```

**الوسائط**

* `x` — قيمة الإدخال المراد تحويلها. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring) أو [`DateTime64`](/ar/reference/data-types/datetime64) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)

**القيمة المُعادة**

تُعيد قيمة الإدخال بعد تحويلها بدقة الميكروثانية. [`Time64(6)`](/ar/reference/data-types/time64)

**أمثلة**

**تحويل String إلى Time64**

```sql title=Query theme={null}
SELECT toTime64('14:30:25.123456')
```

```response title=Response theme={null}
14:30:25.123456
```

**التحويل من DateTime64 إلى Time64**

```sql title=Query theme={null}
SELECT toTime64(toDateTime64('2025-04-15 14:30:25.123456', 6))
```

```response title=Response theme={null}
14:30:25.123456
```

**تحويل القيم الصحيحة إلى Time64**

```sql title=Query theme={null}
SELECT toTime64(52225123456)
```

```response title=Response theme={null}
14:30:25.123456
```

<div id="toTime64OrNull">
  ## toTime64OrNull
</div>

قُدِّم في: v25.6.0

يحوّل قيمة الإدخال إلى قيمة من النوع `Time64`، ولكنه يعيد `NULL` في حال حدوث خطأ.
يشبه [`toTime64`](#toTime64)، لكنه يعيد `NULL` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

انظر أيضًا:

* [`toTime64`](#toTime64)
* [`toTime64OrZero`](#toTime64OrZero)

**البنية**

```sql theme={null}
toTime64OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لوقت بدقة أقل من الثانية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد قيمة من النوع `Time64` عند النجاح، وإلا `NULL`. [`Time64`](/ar/reference/data-types/time64) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid')
```

```response title=Response theme={null}
┌─toTime64OrNull('12:30:45.123')─┬─toTime64OrNull('invalid')─┐
│                   12:30:45.123 │                      ᴺᵁᴸᴸ │
└────────────────────────────────┴───────────────────────────┘
```

<div id="toTime64OrZero">
  ## toTime64OrZero
</div>

استُحدثت في: v25.6.0

يحوِّل قيمة الإدخال إلى قيمة من النوع Time64، لكنه يُرجع `00:00:00.000` في حال حدوث خطأ.
يشبه [`toTime64`](#toTime64)، لكنه يُرجع `00:00:00.000` بدلًا من رفع استثناء عند حدوث أخطاء في التحويل.

**البنية**

```sql theme={null}
toTime64OrZero(x)
```

**المعاملات**

* `x` — تمثيل نصي لوقت بدقة أجزاء من الثانية. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع قيمة من النوع `Time64` عند النجاح، وإلا `00:00:00.000`. [`Time64`](/ar/reference/data-types/time64)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toTime64OrZero('12:30:45.123'), toTime64OrZero('invalid')
```

```response title=Response theme={null}
┌─toTime64OrZero('12:30:45.123')─┬─toTime64OrZero('invalid')─┐
│                   12:30:45.123 │             00:00:00.000 │
└────────────────────────────────┴──────────────────────────┘
```

<div id="toTimeOrNull">
  ## toTimeOrNull
</div>

طُرح في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع Time، ولكنه يعيد `NULL` في حال حدوث خطأ.
يشبه [`toTime`](#toTime)، لكنه يعيد `NULL` بدلًا من طرح استثناء عند حدوث أخطاء في التحويل.

انظر أيضًا:

* [`toTime`](#toTime)
* [`toTimeOrZero`](#toTimeOrZero)

**الصياغة**

```sql theme={null}
toTimeOrNull(x)
```

**المعاملات**

* `x` — تمثيل نصي لوقت. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد قيمة Time عند النجاح، وإلا `NULL`. [`Time`](/ar/reference/data-types/time) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال للاستخدام**

```sql title=Query theme={null}
SELECT toTimeOrNull('12:30:45'), toTimeOrNull('invalid')
```

```response title=Response theme={null}
┌─toTimeOrNull('12:30:45')─┬─toTimeOrNull('invalid')─┐
│                 12:30:45 │                    ᴺᵁᴸᴸ │
└──────────────────────────┴─────────────────────────┘
```

<div id="toTimeOrZero">
  ## toTimeOrZero
</div>

استُحدث في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع Time، لكنه يعيد `00:00:00` في حال حدوث خطأ.
يشبه toTime، لكنه يعيد `00:00:00` بدلًا من إطلاق استثناء عند حدوث أخطاء في التحويل.

**الصيغة**

```sql theme={null}
toTimeOrZero(x)
```

**الوسيطات**

* `x` — تمثيل نصي لوقت. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد قيمة من النوع [`Time`](/ar/reference/data-types/time) عند النجاح، وإلا `00:00:00`.

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid')
```

```response title=Response theme={null}
┌─toTimeOrZero('12:30:45')─┬─toTimeOrZero('invalid')─┐
│                 12:30:45 │                00:00:00 │
└──────────────────────────┴─────────────────────────┘
```

<div id="toUInt128">
  ## toUInt128
</div>

ظهر في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [`UInt128`](/ar/reference/functions/regular-functions/type-conversion-functions#toUInt128).
يطرح استثناءً في حال حدوث خطأ.
تستخدم الدالة التقريب باتجاه الصفر، ما يعني أنها تحذف الخانات الكسرية من الأعداد.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toUInt128('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود UInt128، فستحدث حالة تجاوز علوي أو سفلي في النتيجة.
  ولا يُعد ذلك خطأً.
</Note>

انظر أيضًا:

* [`toUInt128OrZero`](#toUInt128OrZero).
* [`toUInt128OrNull`](#toUInt128OrNull).
* [`toUInt128OrDefault`](#toUInt128OrDefault).

**البنية**

```sql theme={null}
toUInt128(expr)
```

**الوسائط**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المعادة**

تُرجع قيمة عدد صحيح غير موقّع بطول 128 بت. [`UInt128`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt128(128),
    toUInt128(128.8),
    toUInt128('128')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt128(128):   128
toUInt128(128.8): 128
toUInt128('128'): 128
```

<div id="toUInt128OrDefault">
  ## toUInt128OrDefault
</div>

أُضيف في: v21.11.0

مثل [`toUInt128`](#toUInt128)، تحوّل هذه الدالة قيمة مُدخلة إلى قيمة من النوع [`UInt128`](/ar/reference/data-types/int-uint)، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجع `0` عند حدوث خطأ.

**البنية**

```sql theme={null}
toUInt128OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل. [`UInt128`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يعيد قيمة من النوع UInt128 عند النجاح، وإلا يعيد القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم تُمرَّر. [`UInt128`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toUInt128OrDefault('128', CAST('0', 'UInt128'))
```

```response title=Response theme={null}
128
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128'))
```

```response title=Response theme={null}
0
```

<div id="toUInt128OrNull">
  ## toUInt128OrNull
</div>

أُضيف في: v21.6.0

على غرار [`toUInt128`](#toUInt128)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt128`](/ar/reference/data-types/int-uint)، لكنها تُرجع `NULL` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toUInt128OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt128`](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toUInt128`](#toUInt128).
* [`toUInt128OrZero`](#toUInt128OrZero).
* [`toUInt128OrDefault`](#toUInt128OrDefault).

**الصياغة**

```sql theme={null}
toUInt128OrNull(x)
```

**المعاملات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

تعيد قيمة من النوع UInt128، أو `NULL` إذا تعذّر التحويل. [`UInt128`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt128OrNull('128'),
    toUInt128OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt128OrNull('128'): 128
toUInt128OrNull('abc'): \N
```

<div id="toUInt128OrZero">
  ## toUInt128OrZero
</div>

أُضيف في: v1.1.0

مثل [`toUInt128`](#toUInt128)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt128`](/ar/reference/data-types/int-uint)، لكنها تُرجع `0` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toUInt128OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt128`](/ar/reference/data-types/int-uint)، يحدث تجاوز سعة أو نقص سعة في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toUInt128`](#toUInt128).
* [`toUInt128OrNull`](#toUInt128OrNull).
* [`toUInt128OrDefault`](#toUInt128OrDefault).

**البنية**

```sql theme={null}
toUInt128OrZero(x)
```

**الوسيطات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من النوع UInt128، أو `0` إذا فشلت عملية التحويل. [`UInt128`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt128OrZero('128'),
    toUInt128OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt128OrZero('128'): 128
toUInt128OrZero('abc'): 0
```

<div id="toUInt16">
  ## toUInt16
</div>

استُحدثت في: v1.1.0

تُحوِّل قيمة إدخال إلى قيمة من النوع [`UInt16`](/ar/reference/data-types/int-uint).
تُطلق استثناءً في حال حدوث خطأ.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والست عشرية، مثل: `SELECT toUInt16('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt16`](/ar/reference/data-types/int-uint)، يحدث تجاوز أو نقص في النتيجة.
  ولا يُعدّ ذلك خطأً.
  على سبيل المثال: `SELECT toUInt16(65536) == 0;`.
</Note>

<Note>
  تستخدم الدالة [التقريب باتجاه الصفر](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)، ما يعني أنها تقطع الخانات الكسرية من الأعداد.
</Note>

انظر أيضًا:

* [`toUInt16OrZero`](#toUInt16OrZero).
* [`toUInt16OrNull`](#toUInt16OrNull).
* [`toUInt16OrDefault`](#toUInt16OrDefault).

**الصياغة**

```sql theme={null}
toUInt16(expr)
```

**الوسائط**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المعادة**

تُرجع قيمة عدد صحيح غير موقّع من 16 بت. [`UInt16`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt16(16),
    toUInt16(16.16),
    toUInt16('16')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt16(16):    16
toUInt16(16.16): 16
toUInt16('16'):  16
```

<div id="toUInt16OrDefault">
  ## toUInt16OrDefault
</div>

تم تقديمه في: v21.11.0

على غرار [`toUInt16`](#toUInt16)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [UInt16](/ar/reference/data-types/int-uint)، لكنها تُرجِع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجَع القيمة `0` عند حدوث خطأ.

**الصياغة**

```sql theme={null}
toUInt16OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل. [`UInt16`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

يُرجع قيمة من النوع UInt16 عند النجاح، وإلا يُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. [`UInt16`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toUInt16OrDefault('16', CAST('0', 'UInt16'))
```

```response title=Response theme={null}
16
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16'))
```

```response title=Response theme={null}
0
```

<div id="toUInt16OrNull">
  ## toUInt16OrNull
</div>

أُضيفت في: v1.1.0

مثل [`toUInt16`](#toUInt16)، تحوّل هذه الدالة قيمة مُدخلة إلى قيمة من النوع [`UInt16`](/ar/reference/data-types/int-uint)، لكنها تُرجع `NULL` عند حدوث خطأ.

الوسائط المدعومة:

* تمثيلات نصية لقيم (U)Int8/16/32/128/256.

الوسائط غير المدعومة (تُرجع `NULL`):

* تمثيلات نصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* تمثيلات نصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toUInt16OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt16`](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  لا يُعدّ ذلك خطأ.
</Note>

انظر أيضًا:

* [`toUInt16`](#toUInt16).
* [`toUInt16OrZero`](#toUInt16OrZero).
* [`toUInt16OrDefault`](#toUInt16OrDefault).

**البنية**

```sql theme={null}
toUInt16OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد قيمة من النوع `UInt16`، أو `NULL` إذا تعذّر التحويل. [`UInt16`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt16OrNull('16'),
    toUInt16OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt16OrNull('16'):  16
toUInt16OrNull('abc'): \N
```

<div id="toUInt16OrZero">
  ## toUInt16OrZero
</div>

قُدِّمت في: v1.1.0

على غرار [`toUInt16`](#toUInt16)، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt16`](/ar/reference/data-types/int-uint)، لكنها تُرجع `0` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int8/16/32/128/256.

الوسيطات غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toUInt16OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt16`](/ar/reference/data-types/int-uint)، يحدث تجاوز سعة أو نقص سعة في النتيجة.
  ولا يُعدّ ذلك خطأ.
</Note>

انظر أيضًا:

* [`toUInt16`](#toUInt16).
* [`toUInt16OrNull`](#toUInt16OrNull).
* [`toUInt16OrDefault`](#toUInt16OrDefault).

**الصيغة**

```sql theme={null}
toUInt16OrZero(x)
```

**الوسائط**

* `x` — تمثيل سلسلة نصية لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة من النوع UInt16، أو `0` إذا تعذّر التحويل. [`UInt16`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt16OrZero('16'),
    toUInt16OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt16OrZero('16'):  16
toUInt16OrZero('abc'): 0
```

<div id="toUInt256">
  ## toUInt256
</div>

تم تقديمها في: v1.1.0

تحوّل قيمة الإدخال إلى قيمة من النوع UInt256.
تطرح استثناءً في حال حدوث خطأ.
تستخدم الدالة التقريب نحو الصفر، أي إنها تحذف الخانات الكسرية من الأعداد.

الوسيطات المدعومة:

* القيم أو تمثيلاتها النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والست عشرية، مثل `SELECT toUInt256('0xc0fe');`.

<Note>
  إذا تعذر تمثيل قيمة الإدخال ضمن حدود UInt256، فقد يحدث تجاوز أو نقص في السعة في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

راجع أيضًا:

* [`toUInt256OrZero`](#toUInt256OrZero).
* [`toUInt256OrNull`](#toUInt256OrNull).
* [`toUInt256OrDefault`](#toUInt256OrDefault).

**البنية**

```sql theme={null}
toUInt256(expr)
```

**الوسائط**

* `expr` — تعبير يُرجِع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

يُرجِع قيمة عدد صحيح غير موقَّع بطول 256 بت. [`UInt256`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt256(256),
    toUInt256(256.256),
    toUInt256('256')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt256(256):     256
toUInt256(256.256): 256
toUInt256('256'):   256
```

<div id="toUInt256OrDefault">
  ## toUInt256OrDefault
</div>

أُضيف في: v21.11.0

على غرار [`toUInt256`](#toUInt256)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [UInt256](/ar/reference/data-types/int-uint)، لكنها تُرجع القيمة الافتراضية عند حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجع `0` عند حدوث خطأ.

**الصياغة**

```sql theme={null}
toUInt256OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي ستُعاد إذا تعذّر التحليل. [`UInt256`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

يُرجع قيمة من النوع UInt256 عند النجاح، وإلا فيُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم تمريرها. [`UInt256`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toUInt256OrDefault('-256', CAST('0', 'UInt256'))
```

```response title=Response theme={null}
0
```

**فشل التحويل**

```sql title=Query theme={null}
SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256'))
```

```response title=Response theme={null}
0
```

<div id="toUInt256OrNull">
  ## toUInt256OrNull
</div>

أُضيف في: v20.8.0

مثل [`toUInt256`](#toUInt256)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt256`](/ar/reference/data-types/int-uint)، لكنها تُرجع `NULL` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والست عشرية، على سبيل المثال `SELECT toUInt256OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt256`](/ar/reference/data-types/int-uint)، يحدث فيض أو نقص في النتيجة.
  ولا يُعدّ ذلك خطأ.
</Note>

انظر أيضًا:

* [`toUInt256`](#toUInt256).
* [`toUInt256OrZero`](#toUInt256OrZero).
* [`toUInt256OrDefault`](#toUInt256OrDefault).

**الصياغة**

```sql theme={null}
toUInt256OrNull(x)
```

**المعاملات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

ترجع قيمة من النوع UInt256، أو `NULL` إذا تعذر التحويل. [`UInt256`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt256OrNull('256'),
    toUInt256OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt256OrNull('256'): 256
toUInt256OrNull('abc'): \N
```

<div id="toUInt256OrZero">
  ## toUInt256OrZero
</div>

أُضيف في: v20.8.0

مثل [`toUInt256`](#toUInt256)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt256`](/ar/reference/data-types/int-uint)، لكنها تُرجع `0` عند حدوث خطأ.

الوسائط المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسائط غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toUInt256OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt256`](/ar/reference/data-types/int-uint)، يحدث تجاوز أو نقص في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toUInt256`](#toUInt256).
* [`toUInt256OrNull`](#toUInt256OrNull).
* [`toUInt256OrDefault`](#toUInt256OrDefault).

**البنية**

```sql theme={null}
toUInt256OrZero(x)
```

**الوسيطات**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد قيمة من النوع `UInt256`، أو `0` إذا تعذّر التحويل. [`UInt256`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt256OrZero('256'),
    toUInt256OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt256OrZero('256'): 256
toUInt256OrZero('abc'): 0
```

<div id="toUInt32">
  ## toUInt32
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [`UInt32`](/ar/reference/data-types/int-uint).
يطرح استثناءً عند حدوث خطأ.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toUInt32('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt32`](/ar/reference/data-types/int-uint)، فستحدث زيادة أو نقصان خارج النطاق في النتيجة.
  ولا يُعدّ ذلك خطأً.
  على سبيل المثال: `SELECT toUInt32(4294967296) == 0;`
</Note>

<Note>
  تستخدم الدالة [التقريب نحو الصفر](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
</Note>

انظر أيضًا:

* [`toUInt32OrZero`](#toUInt32OrZero).
* [`toUInt32OrNull`](#toUInt32OrNull).
* [`toUInt32OrDefault`](#toUInt32OrDefault).

**البنية**

```sql theme={null}
toUInt32(expr)
```

**الوسائط**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

تُرجع قيمة عدد صحيح غير موقّع بعرض 32 بت. [`UInt32`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt32(32),
    toUInt32(32.32),
    toUInt32('32')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt32(32):    32
toUInt32(32.32): 32
toUInt32('32'):  32
```

<div id="toUInt32OrDefault">
  ## toUInt32OrDefault
</div>

أُضيف في: v21.11.0

مثل [`toUInt32`](#toUInt32)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [UInt32](/ar/reference/data-types/int-uint)، لكنها تُعيد القيمة الافتراضية عند حدوث خطأ.
إذا لم تُمرَّر قيمة `default`، فستُعاد القيمة `0` عند حدوث خطأ.

**الصيغة**

```sql theme={null}
toUInt32OrDefault(expr[, default])
```

**المعاملات**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُرجع إذا تعذّر التحليل. [`UInt32`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجع قيمة من النوع UInt32 عند النجاح، وإلا فتُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`UInt32`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toUInt32OrDefault('32', CAST('0', 'UInt32'))
```

```response title=Response theme={null}
32
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32'))
```

```response title=Response theme={null}
0
```

<div id="toUInt32OrNull">
  ## toUInt32OrNull
</div>

أُضيف في: v1.1.0

على غرار [`toUInt32`](#toUInt32)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt32`](/ar/reference/data-types/int-uint)، لكنها تُرجع `NULL` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int8/16/32/128/256.

الوسيطات غير المدعومة (تُرجع `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toUInt32OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt32`](/ar/reference/data-types/int-uint)، يحدث تجاوز سعة أو نقص سعة في النتيجة.
  ولا يُعدّ ذلك خطأ.
</Note>

انظر أيضًا:

* [`toUInt32`](#toUInt32).
* [`toUInt32OrZero`](#toUInt32OrZero).
* [`toUInt32OrDefault`](#toUInt32OrDefault).

**البنية**

```sql theme={null}
toUInt32OrNull(x)
```

**المعاملات**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع قيمة من النوع `UInt32`، أو `NULL` إذا أخفقت عملية التحويل. [`UInt32`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt32OrNull('32'),
    toUInt32OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt32OrNull('32'):  32
toUInt32OrNull('abc'): \N
```

<div id="toUInt32OrZero">
  ## toUInt32OrZero
</div>

قُدِّم في: v1.1.0

مثل [`toUInt32`](#toUInt32)، تحوّل هذه الدالة قيمة إدخال إلى قيمة من النوع [`UInt32`](/ar/reference/data-types/int-uint)، لكنها تُرجع `0` عند حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int8/16/32/128/256.

الوسيطات غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل `SELECT toUInt32OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt32`](/ar/reference/data-types/int-uint)، يحدث تجاوز للحد الأعلى أو الأدنى في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

راجع أيضًا:

* [`toUInt32`](#toUInt32).
* [`toUInt32OrNull`](#toUInt32OrNull).
* [`toUInt32OrDefault`](#toUInt32OrDefault).

**الصياغة**

```sql theme={null}
toUInt32OrZero(x)
```

**المعاملات**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع قيمة من النوع UInt32، وإلا فتُرجِع `0` إذا تعذّر التحويل. [`UInt32`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt32OrZero('32'),
    toUInt32OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt32OrZero('32'):  32
toUInt32OrZero('abc'): 0
```

<div id="toUInt64">
  ## toUInt64
</div>

أُضيف في: v1.1.0

يحوّل قيمة الإدخال إلى قيمة من النوع [`UInt64`](/ar/reference/data-types/int-uint).
يطرح استثناءً عند حدوث خطأ.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الأنواع غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل `SELECT toUInt64('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt64`](/ar/reference/data-types/int-uint)، فستحدث في النتيجة حالة تجاوز علوي أو سفلي.
  ولا يُعدّ ذلك خطأً.
  على سبيل المثال: `SELECT toUInt64(18446744073709551616) == 0;`
</Note>

<Note>
  تستخدم الدالة [التقريب نحو الصفر](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)، ما يعني أنها تحذف الخانات الكسرية من الأعداد.
</Note>

انظر أيضًا:

* [`toUInt64OrZero`](#toUInt64OrZero).
* [`toUInt64OrNull`](#toUInt64OrNull).
* [`toUInt64OrDefault`](#toUInt64OrDefault).

**الصياغة**

```sql theme={null}
toUInt64(expr)
```

**الوسائط**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

يُرجع قيمة عدد صحيح غير موقّع بطول 64 بت. [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt64(64),
    toUInt64(64.64),
    toUInt64('64')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt64(64):    64
toUInt64(64.64): 64
toUInt64('64'):  64
```

<div id="toUInt64OrDefault">
  ## toUInt64OrDefault
</div>

قُدِّمت في: v21.11.0

مثل [`toUInt64`](#toUInt64)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [UInt64](/ar/reference/data-types/int-uint)، لكنها تُرجع القيمة الافتراضية في حال حدوث خطأ.
إذا لم يتم تمرير قيمة `default`، فستُرجع `0` عند حدوث خطأ.

**الصيغة**

```sql theme={null}
toUInt64OrDefault(expr[, default])
```

**الوسيطات**

* `expr` — تعبير يُرجع عددًا أو تمثيلًا نصيًا لعدد. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا تعذّر التحليل. [`UInt64`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجع قيمة من النوع UInt64 عند النجاح، وإلا فتُرجع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toUInt64OrDefault('64', CAST('0', 'UInt64'))
```

```response title=Response theme={null}
64
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64'))
```

```response title=Response theme={null}
0
```

<div id="toUInt64OrNull">
  ## toUInt64OrNull
</div>

تم تقديمه في: v1.1.0

على غرار [`toUInt64`](#toUInt64)، تحوّل هذه الدالة قيمة إدخال إلى قيمة من النوع [`UInt64`](/ar/reference/data-types/int-uint)، ولكنها تُرجع `NULL` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `NULL`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toUInt64OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt64`](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toUInt64`](#toUInt64).
* [`toUInt64OrZero`](#toUInt64OrZero).
* [`toUInt64OrDefault`](#toUInt64OrDefault).

**الصياغة**

```sql theme={null}
toUInt64OrNull(x)
```

**المعاملات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُرجِع قيمة من النوع UInt64، أو `NULL` إذا تعذّر التحويل. [`UInt64`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt64OrNull('64'),
    toUInt64OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt64OrNull('64'):  64
toUInt64OrNull('abc'): \N
```

<div id="toUInt64OrZero">
  ## toUInt64OrZero
</div>

أُضيفت في: v1.1.0

على غرار [`toUInt64`](#toUInt64)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt64`](/ar/reference/data-types/int-uint)، لكنها تُرجع `0` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int\*.

الوسيطات غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والستّ عشرية، مثل `SELECT toUInt64OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt64`](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعدّ ذلك خطأ.
</Note>

انظر أيضًا:

* [`toUInt64`](#toUInt64).
* [`toUInt64OrNull`](#toUInt64OrNull).
* [`toUInt64OrDefault`](#toUInt64OrDefault).

**البنية**

```sql theme={null}
toUInt64OrZero(x)
```

**الوسائط**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تُعيد قيمة من النوع UInt64، وإلا فتُعيد `0` إذا فشل التحويل. [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt64OrZero('64'),
    toUInt64OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt64OrZero('64'):  64
toUInt64OrZero('abc'): 0
```

<div id="toUInt8">
  ## toUInt8
</div>

تم تقديمه في: v1.1.0

يحوّل قيمة إدخال إلى قيمة من النوع [`UInt8`](/ar/reference/data-types/int-uint).
يطرح استثناءً في حال حدوث خطأ.

الوسيطات المدعومة:

* القيم أو التمثيلات النصية من النوع (U)Int\*.
* القيم من النوع Float\*.

الوسيطات غير المدعومة:

* التمثيلات النصية لقيم Float\*، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، مثل `SELECT toUInt8('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [UInt8](/ar/reference/data-types/int-uint)، يحدث فائض أو نقص في النتيجة.
  لا يُعدّ ذلك خطأً.
  على سبيل المثال: `SELECT toUInt8(256) == 0;`.
</Note>

<Note>
  تستخدم الدالة [التقريب نحو الصفر](https://en.wikipedia.org/wiki/Rounding#Rounding_towards_zero)، ما يعني أنها تحذف الأرقام الكسرية من الأعداد.
</Note>

انظر أيضًا:

* [`toUInt8OrZero`](#toUInt8OrZero).
* [`toUInt8OrNull`](#toUInt8OrNull).
* [`toUInt8OrDefault`](#toUInt8OrDefault).

**الصياغة**

```sql theme={null}
toUInt8(expr)
```

**الوسائط**

* `expr` — تعبير يُرجع رقمًا أو تمثيلًا نصيًا لرقم. [`تعبير`](/ar/reference/data-types/special-data-types/expression)

**القيمة المُعادة**

يُرجع قيمة من نوع عدد صحيح غير موقّع من 8 بتات. [`UInt8`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt8(8),
    toUInt8(8.8),
    toUInt8('8')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt8(8):   8
toUInt8(8.8): 8
toUInt8('8'): 8
```

<div id="toUInt8OrDefault">
  ## toUInt8OrDefault
</div>

قُدِّمت في: v21.11.0

على غرار [`toUInt8`](#toUInt8)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [UInt8](/ar/reference/data-types/int-uint)، لكنها تُرجِع القيمة الافتراضية عند حدوث خطأ.
إذا لم تُمرَّر قيمة `default`، فستُرجِع `0` عند حدوث خطأ.

**الصياغة**

```sql theme={null}
toUInt8OrDefault(expr[, default])
```

**الوسائط**

* `expr` — `تعبير` يُرجِع رقمًا أو تمثيلًا نصيًا لرقم. [`String`](/ar/reference/data-types/string) أو [`(U)Int*`](/ar/reference/data-types/int-uint) أو [`Float*`](/ar/reference/data-types/float)
* `default` — اختياري. القيمة الافتراضية التي تُعاد إذا فشلت عملية التحليل. [`UInt8`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يُرجِع قيمة من النوع UInt8 عند النجاح، وإلا يُرجِع القيمة الافتراضية إذا تم تمريرها، أو 0 إذا لم يتم ذلك. [`UInt8`](/ar/reference/data-types/int-uint)

**أمثلة**

**تحويل ناجح**

```sql title=Query theme={null}
SELECT toUInt8OrDefault('8', CAST('0', 'UInt8'))
```

```response title=Response theme={null}
8
```

**تعذّر التحويل**

```sql title=Query theme={null}
SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8'))
```

```response title=Response theme={null}
0
```

<div id="toUInt8OrNull">
  ## toUInt8OrNull
</div>

تم تقديمها في: v1.1.0

مثل [`toUInt8`](#toUInt8)، تحوِّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt8`](/ar/reference/data-types/int-uint)، ولكنها تُرجِع `NULL` في حال حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لـ (U)Int8/16/32/128/256.

الوسيطات غير المدعومة (تُرجِع `NULL`):

* التمثيلات النصية لقيم Float\* العادية، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toUInt8OrNull('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt8`](/ar/reference/data-types/int-uint)، فستحدث حالة تجاوز أو نقص في النتيجة.
  ولا يُعَدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toUInt8`](#toUInt8).
* [`toUInt8OrZero`](#toUInt8OrZero).
* [`toUInt8OrDefault`](#toUInt8OrDefault).

**الصياغة**

```sql theme={null}
toUInt8OrNull(x)
```

**الوسيطات**

* `x` — تمثيل نصي لرقم. [`String`](/ar/reference/data-types/string)

**القيمة المعادة**

يعيد قيمة من النوع UInt8، وإلا فيُرجع `NULL` إذا أخفق التحويل. [`UInt8`](/ar/reference/data-types/int-uint) أو [`NULL`](/ar/reference/syntax#null)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt8OrNull('42'),
    toUInt8OrNull('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt8OrNull('42'):  42
toUInt8OrNull('abc'): \N
```

<div id="toUInt8OrZero">
  ## toUInt8OrZero
</div>

تم تقديمها في: v1.1.0

مثل [`toUInt8`](#toUInt8)، تحوّل هذه الدالة قيمة الإدخال إلى قيمة من النوع [`UInt8`](/ar/reference/data-types/int-uint)، ولكنها تُرجع `0` عند حدوث خطأ.

الوسيطات المدعومة:

* التمثيلات النصية لقيم (U)Int8/16/32/128/256.

الوسيطات غير المدعومة (تُرجع `0`):

* التمثيلات النصية لقيم Float\* العادية، بما في ذلك `NaN` و`Inf`.
* التمثيلات النصية للقيم الثنائية والسداسية العشرية، على سبيل المثال `SELECT toUInt8OrZero('0xc0fe');`.

<Note>
  إذا تعذّر تمثيل قيمة الإدخال ضمن حدود [`UInt8`](/ar/reference/data-types/int-uint)، يحدث overflow أو underflow في النتيجة.
  ولا يُعدّ ذلك خطأً.
</Note>

انظر أيضًا:

* [`toUInt8`](#toUInt8).
* [`toUInt8OrNull`](#toUInt8OrNull).
* [`toUInt8OrDefault`](#toUInt8OrDefault).

**البنية**

```sql theme={null}
toUInt8OrZero(x)
```

**الوسائط**

* `x` — تمثيل نصي لعدد. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

تعيد قيمة من النوع `UInt8`، أو `0` إذا تعذر التحويل. [`UInt8`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUInt8OrZero('-8'),
    toUInt8OrZero('abc')
FORMAT Vertical
```

```response title=Response theme={null}
Row 1:
──────
toUInt8OrZero('-8'):  0
toUInt8OrZero('abc'): 0
```

<div id="toUUID">
  ## toUUID
</div>

أُضيف في الإصدار: v1.1.0

يحوّل قيمة من النوع String إلى قيمة من النوع UUID.

**الصيغة**

```sql theme={null}
toUUID(string)
```

**الوسيطات**

* `string` — قيمة UUID على هيئة سلسلة نصية. [`String`](/ar/reference/data-types/string) أو [`FixedString`](/ar/reference/data-types/fixedstring)

**القيمة المعادة**

تعيد قيمة UUID من التمثيل النصي لـ UUID. [`UUID`](/ar/reference/data-types/uuid)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid
```

```response title=Response theme={null}
┌─────────────────────────────────uuid─┐
│ 61f0c404-5cb3-11e7-907b-a6006ad3dba0 │
└──────────────────────────────────────┘
```

<div id="toUUIDOrZero">
  ## toUUIDOrZero
</div>

أُضيف في: v20.12.0

يحوّل قيمة إدخال إلى قيمة من النوع [UUID](/ar/reference/data-types/uuid)، لكنه يعيد UUID صفريًا في حال حدوث خطأ.
وهو مشابه لـ [`toUUID`](/ar/reference/functions/regular-functions/type-conversion-functions#toUUID)، لكنه يعيد UUID صفريًا (`00000000-0000-0000-0000-000000000000`) بدلًا من طرح استثناء عند حدوث أخطاء في التحويل.

الوسيطات المدعومة:

* التمثيلات النصية لـ UUID بالتنسيق القياسي (8-4-4-4-12 رقمًا سداسيًا عشريًا).
* التمثيلات النصية لـ UUID من دون واصلات (32 رقمًا سداسيًا عشريًا).

الوسيطات غير المدعومة (تعيد UUID صفريًا):

* تنسيقات نصية غير صالحة.
* أنواع غير نصية.

**الصياغة**

```sql theme={null}
toUUIDOrZero(x)
```

**الوسائط**

* `x` — تمثيل نصي لـ UUID. [`String`](/ar/reference/data-types/string)

**القيمة المُعادة**

يعيد قيمة UUID عند النجاح، وإلا فيُعيد UUID صفريًا (`00000000-0000-0000-0000-000000000000`). [`UUID`](/ar/reference/data-types/uuid)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
SELECT
    toUUIDOrZero('550e8400-e29b-41d4-a716-446655440000') AS valid_uuid,
    toUUIDOrZero('invalid-uuid') AS invalid_uuid
```

```response title=Response theme={null}
┌─valid_uuid───────────────────────────┬─invalid_uuid─────────────────────────┐
│ 550e8400-e29b-41d4-a716-446655440000 │ 00000000-0000-0000-0000-000000000000 │
└──────────────────────────────────────┴──────────────────────────────────────┘
```

<div id="toUnixTimestamp64Micro">
  ## toUnixTimestamp64Micro
</div>

استُحدث في: v20.5.0

يحوّل [`DateTime64`](/ar/reference/data-types/datetime64) إلى قيمة من النوع [`Int64`](/ar/reference/data-types/int-uint) بدقة ميكروثانية ثابتة.
تُضبط قيمة الإدخال بالزيادة أو النقصان بحسب دقتها.

<Note>
  قيمة الإخراج مرتبطة بـ UTC، وليس بالمنطقة الزمنية لقيمة الإدخال.
</Note>

**الصياغة**

```sql theme={null}
toUnixTimestamp64Micro(value)
```

**المعاملات**

* `value` — قيمة من النوع DateTime64 بأي درجة دقة. [`DateTime64`](/ar/reference/data-types/datetime64)

**القيمة المُعادة**

يعيد طابعًا زمنيًا لـ Unix بالميكروثانية. [`Int64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH toDateTime64('2025-02-13 23:31:31.011123', 6, 'UTC') AS dt64
SELECT toUnixTimestamp64Micro(dt64);
```

```response title=Response theme={null}
┌─toUnixTimestamp64Micro(dt64)─┐
│               1739489491011123 │
└────────────────────────────────┘
```

<div id="toUnixTimestamp64Milli">
  ## toUnixTimestamp64Milli
</div>

أُضيف في: v20.5.0

يحوّل [`DateTime64`](/ar/reference/data-types/datetime64) إلى قيمة [`Int64`](/ar/reference/data-types/int-uint) بدقة ميلي ثانية ثابتة.
وتُزاد قيمة الإدخال أو تُخفض بالشكل المناسب وفقًا لدقتها.

<Note>
  تستند قيمة الإخراج إلى UTC، وليس إلى المنطقة الزمنية لقيمة الإدخال.
</Note>

**الصيغة**

```sql theme={null}
toUnixTimestamp64Milli(value)
```

**الوسائط**

* `value` — قيمة من نوع DateTime64 بأي درجة دقة. [`DateTime64`](/ar/reference/data-types/datetime64)

**القيمة المُعادة**

تُرجِع طابعًا زمنيًا بتنسيق Unix بالمللي ثانية. [`Int64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64
SELECT toUnixTimestamp64Milli(dt64);
```

```response title=Response theme={null}
┌─toUnixTimestamp64Milli(dt64)─┐
│                1739489491011 │
└──────────────────────────────┘
```

<div id="toUnixTimestamp64Nano">
  ## toUnixTimestamp64Nano
</div>

أُضيف في: v20.5.0

يحوّل [`DateTime64`](/ar/reference/data-types/datetime64) إلى قيمة [`Int64`](/ar/reference/functions/regular-functions/type-conversion-functions#toInt64) بدقة نانوثانية ثابتة.
ويُزاد مقياس قيمة الإدخال أو يُخفَّض حسب دقتها.

<Note>
  تُحتسب قيمة الإخراج بالنسبة إلى UTC، وليس بالنسبة إلى المنطقة الزمنية لقيمة الإدخال.
</Note>

**الصياغة**

```sql theme={null}
toUnixTimestamp64Nano(value)
```

**الوسائط**

* `value` — قيمة من نوع DateTime64 بأي مستوى دقة. [`DateTime64`](/ar/reference/data-types/datetime64)

**القيمة المُعادة**

يعيد طابعًا زمنيًا بنظام Unix بوحدة النانوثانية. [`Int64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال على الاستخدام**

```sql title=Query theme={null}
WITH toDateTime64('2025-02-13 23:31:31.011123456', 9, 'UTC') AS dt64
SELECT toUnixTimestamp64Nano(dt64);
```

```response title=Response theme={null}
┌─toUnixTimestamp64Nano(dt64)────┐
│            1739489491011123456 │
└────────────────────────────────┘
```

<div id="toUnixTimestamp64Second">
  ## toUnixTimestamp64Second
</div>

أُضيفت في: v24.12.0

يحوّل قيمة [`DateTime64`](/ar/reference/data-types/datetime64) إلى قيمة [`Int64`](/ar/reference/data-types/int-uint) بدقة ثابتة بالثواني.
تُزاد قيمة الإدخال أو تُخفَّض بالشكل المناسب وفقًا لدقتها.

<Note>
  قيمة الخرج مرتبطة بـ UTC، وليست مرتبطة بالمنطقة الزمنية لقيمة الإدخال.
</Note>

**الصياغة**

```sql theme={null}
toUnixTimestamp64Second(value)
```

**الوسائط**

* `value` — قيمة من نوع DateTime64 بأي درجة precision. [`DateTime64`](/ar/reference/data-types/datetime64)

**القيمة المعادة**

تُرجِع طابعًا زمنيًا لـ Unix بالثواني. [`Int64`](/ar/reference/data-types/int-uint)

**أمثلة**

**مثال استخدام**

```sql title=Query theme={null}
WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64
SELECT toUnixTimestamp64Second(dt64);
```

```response title=Response theme={null}
┌─toUnixTimestamp64Second(dt64)─┐
│                    1739489491 │
└───────────────────────────────┘
```
