---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb-platform--ydb.viewer.diplodoc.com/en/yql/reference/types/primitive.md?version=v25.1
  - https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/types/primitive.md?version=v25.1
  - href: ru/yql/reference/types/primitive.md
    type: text/markdown
    title: Markdown version
  - href: ../../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/yql/reference/types/primitive.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb-platform--ydb.viewer.diplodoc.com/ru/llms.txt

# Примитивные типы данных

<!-- markdownlint-disable blanks-around-fences -->

Термины «простые», «примитивные» и «элементарные» типы данных используются как синонимы.

## Числовые типы {#numeric}

#|
|| Тип |
Описание |
Примечания
    ||
|| `Bool` |
Логическое значение. |
    ||
|| `Int8` |
Целое число со знаком.
Допустимые значения: от –2<sup>7</sup> до 2<sup>7</sup>–1. |
    ||
|| `Int16` |
Целое число со знаком.
Допустимые значения: от –2<sup>15</sup> до 2<sup>15</sup>–1. |
    ||
|| `Int32` |
Целое число со знаком.
Допустимые значения: от –2<sup>31</sup> до 2<sup>31</sup>–1. |
    ||
|| `Int64` |
Целое число со знаком.
Допустимые значения: от –2<sup>63</sup> до 2<sup>63</sup>–1. |
    ||
|| `Uint8` |
Беззнаковое целое число.
Допустимые значения: от 0 до 2<sup>8</sup>–1. |
    ||
|| `Uint16` |
Беззнаковое целое число.
Допустимые значения: от 0 до 2<sup>16</sup>–1. |
    ||
|| `Uint32` |
Беззнаковое целое число.
Допустимые значения: от 0 до 2<sup>32</sup>–1. |
    ||
|| `Uint64` |
Беззнаковое целое число.
Допустимые значения: от 0 до 2<sup>64</sup>–1. |
    ||
|| `Float` |
Вещественное число с переменной точностью размером 4 байта. |
Не может быть использован в первичном ключе
    ||
|| `Double` |
Вещественное число с переменной точностью размером 8 байт. |
Не может быть использован в первичном ключе
    ||
|| `Decimal(precision, scale)` |
Вещественное число с фиксированной точностью размером 16 байт. Точность (precision) — максимальное общее число хранимых десятичных разрядов, принимает значения от 1 до 35. Масштаб (scale) — максимальное число хранимых десятичных разрядов справа от десятичной запятой, принимает значения от 0 до значения precision. |
    ||
|| `DyNumber` |
Бинарное представление вещественного числа точностью до 38 знаков.<br/>Допустимые значения: положительные от 1×10<sup>-130</sup> до 1×10<sup>126</sup>–1, отрицательные от -1×10<sup>126</sup>–1 до -1×10<sup>-130</sup> и 0.<br/>Совместим с типом `Number` AWS DynamoDB. Не рекомендуется для использования в ydb-native приложениях. |
    ||
|#

## Строковые типы {#string}

| Тип | Описание | Примечания |
| ----- | ----- | ----- |
| `String` | Строка, может содержать произвольные бинарные данные | |
| `Utf8` | Текст в кодировке [UTF-8](https://en.wikipedia.org/wiki/UTF-8) | |
| `Json` | [JSON](https://en.wikipedia.org/wiki/JSON) в текстовом представлении|Не поддерживает возможность сравнения, не может быть использован в первичном ключе |
| `JsonDocument` | [JSON](https://en.wikipedia.org/wiki/JSON) в бинарном индексированном представлении | Не поддерживает возможность сравнения, не может быть использован в первичном ключе |
| `Yson` | [YSON](yson.md) в текстовом или бинарном представлении | Не поддерживает возможность сравнения, не может быть использован в первичном ключе |
| `Uuid` | Универсальный идентификатор [UUID](https://tools.ietf.org/html/rfc4122) | |

{% note info "Ограничения на размер" %}

Максимальный размер значения в ячейке  неключевого столбца  с любым строковым типом данных —  8 МБ.

{% endnote %}

В отличие от типа данных `Json`, который хранит исходное текстовое представление, переданное пользователем, `JsonDocument` использует бинарное индексированное представление. Важное отличие с точки зрения семантики состоит в том, что `JsonDocument` не сохраняет форматирование, порядок ключей в объектах и их дубликаты.

За счет индексированного представления `JsonDocument` позволяет обходить документную модель с использованием `JsonPath` без необходимости парсинга всего содержимого. Это позволяет эффективно выполнять операции из [JSON API](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/builtins/json.md?version=v25.1), уменьшая задержки и стоимость пользовательских запросов. Выполнение запросов над `JsonDocument` может быть до нескольких раз эффективнее в зависимости от типа нагрузки.

Из-за добавленной избыточности `JsonDocument` менее эффективен в хранении. Дополнительные накладные расходы на хранение зависят от конкретного содержимого и в среднем составляют 20–30% от исходного объема. Сохранение данных в формате `JsonDocument` требует дополнительной конвертации из текстового представления, что делает его запись менее эффективной. Тем не менее, для большинства read-intensive сценариев, подразумевающих обработку данных из JSON, этот тип данных является предпочтительным и рекомендуется к использованию.

{% note warning %}

Для хранения чисел (JSON Number) в `JsonDocument`, а также для арифметических операций над ними в [JSON API](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/builtins/json.md?version=v25.1) используется тип [Double](https://en.wikipedia.org/wiki/Double-precision_floating-point_format). Возможна потеря точности при использовании нестандартных представлений чисел в исходном JSON-документе.

{% endnote %}

## Дата и время {#datetime}

| Тип | Описание | Примечания |
| ----- | ----- | ----- |
| `Date` | Дата, точность до дней | Диапазон значений для всех временных типов кроме `Interval` - от нуля часов 01.01.1970 до нуля часов 01.01.2106. Внутреннее представление `Date` – беззнаковое целое 16 бит  |
| `Datetime` | Дата/время, точность до секунд | Внутреннее представление – беззнаковое целое 32 бит |
| `Timestamp` | Дата/время, точность до микросекунд | Внутреннее представление – беззнаковое целое 64 бит |
| `Interval` | Интервал времени (знаковый), точность до микросекунд | Диапазон значений – от -136 лет до +136 лет. Внутреннее представление – знаковое целое 64 бит. Не может быть использован в первичном ключе |
| `TzDate` | Дата с меткой временной зоны, точность до дней | Не поддерживается в столбцах таблиц |
| `TzDateTime` | Дата/время с меткой временной зоны, точность до секунд | Не поддерживается в столбцах таблиц |
| `TzTimestamp` | Дата/время с меткой временной зоны, точность до микросекунд | Не поддерживается в столбцах таблиц |

### Особенности поддержки типа Interval {#interval-type-behavior-and-limitations}

Тип `Interval` использует синтаксис, основанный на стандарте [ISO 8601](https://ru.wikipedia.org/wiki/ISO_8601), с рядом особенностей:

* поддерживаются только интервалы, которые можно представить в виде целого числа микросекунд (не поддерживаются интервалы в годах `Y` и месяцах `M` из-за их переменной продолжительности);
* не поддерживаются варианты с началом/концом интервала, а также повторами;
* поддерживается использование отрицательного знака для обозначения сдвига в прошлое;
* поддерживается совмещение литерала недели `W` с другими литералами;
* микросекунды могут быть указаны в виде дробной части секунд.

#### Примеры использования {#interval-data-examples}

```yql
SELECT
    Interval("P1W2DT2H3M4.567890S"), -- интервал 1 неделя 2 дня 2 часа 3 минуты 4.567890 секунды
    Interval("P1W"),                 -- интервал 1 неделя (7 дней)
    Interval("-P1D");                -- интервал в прошлое 1 сутки (24 часа)
```

### Особенности поддержки типов с меткой временной зоны

Метка временной зоны у типов `TzDate`, `TzDatetime`, `TzTimestamp` это атрибут, который используется:

* При преобразовании ([CAST](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/syntax/expressions.md?version=v25.1#cast), [DateTime::Parse](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/udf/list/datetime.md?version=v25.1#parse), [DateTime::Format](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/udf/list/datetime.md?version=v25.1#format)) в строку и из строки.
* В [DateTime::Split](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/udf/list/datetime.md?version=v25.1#split) - появляется компонент таймзоны в `Resource<TM>`.

Само значение позиции во времени у этих типов хранится в UTC, и метка таймзоны никак не участвует в прочих расчётах. Например:

```yql
SELECT -- эти выражения всегда true для любых таймзон: таймзона не влияет на точку во времени.
    AddTimezone(CurrentUtcDate(), "Europe/Moscow") ==
        AddTimezone(CurrentUtcDate(), "America/New_York"),
    AddTimezone(CurrentUtcDatetime(), "Europe/Moscow") ==
        AddTimezone(CurrentUtcDatetime(), "America/New_York");
```

Важно понимать, что при преобразованиях между `TzDate` и `TzDatetime` или `TzTimestamp` дате соответствует не полночь по локальному времени таймзоны, а полночь по UTC для даты в UTC.


## Приведение простых типов данных {#cast}

### Явное приведение {#explicit-cast}

Явное приведение при помощи [CAST](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/syntax/expressions.md?version=v25.1#cast):

#### Приведение к числовым типам

| Тип           | Bool           | Int8           | Int16          | Int32          | Int64          | Uint8            | Uint16           | Uint32           | Uint64           | Float          | Double         | Decimal |
|---------------|----------------|----------------|----------------|----------------|----------------|------------------|------------------|------------------|------------------|----------------|----------------|---------|
| **Bool**      | —              | Да<sup>1</sup> | Да<sup>1</sup> | Да<sup>1</sup> | Да<sup>1</sup> | Да<sup>1</sup>   | Да<sup>1</sup>   | Да<sup>1</sup>   | Да<sup>1</sup>   | Да<sup>1</sup> | Да<sup>1</sup> | Нет     |
| **Int8**      | Да<sup>2</sup> | —              | Да             | Да             | Да             | Да<sup>3</sup>   | Да<sup>3</sup>   | Да<sup>3</sup>   | Да<sup>3</sup>   | Да             | Да             | Да      |
| **Int16**     | Да<sup>2</sup> | Да<sup>4</sup> | —              | Да             | Да             | Да<sup>3,4</sup> | Да<sup>3</sup>   | Да<sup>3</sup>   | Да<sup>3</sup>   | Да             | Да             | Да      |
| **Int32**     | Да<sup>2</sup> | Да<sup>4</sup> | Да<sup>4</sup> | —              | Да             | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3</sup>   | Да<sup>3</sup>   | Да             | Да             | Да      |
| **Int64**     | Да<sup>2</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | —              | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3</sup>   | Да             | Да             | Да      |
| **Uint8**     | Да<sup>2</sup> | Да<sup>4</sup> | Да             | Да             | Да             | —                | Да               | Да               | Да               | Да             | Да             | Да      |
| **Uint16**    | Да<sup>2</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да             | Да             | Да<sup>4</sup>   | —                | Да               | Да               | Да             | Да             | Да      |
| **Uint32**    | Да<sup>2</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да             | Да<sup>4</sup>   | Да<sup>4</sup>   | —                | Да               | Да             | Да             | Да      |
| **Uint64**    | Да<sup>2</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup>   | Да<sup>4</sup>   | Да<sup>4</sup>   | —                | Да             | Да             | Да      |
| **Float**     | Да<sup>2</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3,4</sup> | —              | Да             | Нет     |
| **Double**    | Да<sup>2</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да             | —              | Нет     |
| **Decimal**   | Нет            | Да             | Да             | Да             | Да             | Да               | Да               | Да               | Да               | Да             | Да             | —       |
| **String**    | Да             | Да             | Да             | Да             | Да             | Да               | Да               | Да               | Да               | Да             | Да             | Да      |
| **Utf8**      | Да             | Да             | Да             | Да             | Да             | Да               | Да               | Да               | Да               | Да             | Да             | Да      |
| **Json**      | Нет            | Нет            | Нет            | Нет            | Нет            | Нет              | Нет              | Нет              | Нет              | Нет            | Нет            | Нет     |
| **Yson**      | Да<sup>5</sup> | Да<sup>5</sup> | Да<sup>5</sup> | Да<sup>5</sup> | Да<sup>5</sup> | Да<sup>5</sup>   | Да<sup>5</sup>   | Да<sup>5</sup>   | Да<sup>5</sup>   | Да<sup>5</sup> | Да<sup>5</sup> | Нет     |
| **Uuid**      | Нет            | Нет            | Нет            | Нет            | Нет            | Нет              | Нет              | Нет              | Нет              | Нет            | Нет            | Нет     |
| **Date**      | Нет            | Да<sup>4</sup> | Да<sup>4</sup> | Да             | Да             | Да<sup>4</sup>   | Да               | Да               | Да               | Да             | Да             | Нет     |
| **Datetime**  | Нет            | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да             | Да<sup>4</sup>   | Да<sup>4</sup>   | Да               | Да               | Да             | Да             | Нет     |
| **Timestamp** | Нет            | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup>   | Да<sup>4</sup>   | Да<sup>4</sup>   | Да               | Да             | Да             | Нет     |
| **Interval**  | Нет            | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да             | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3,4</sup> | Да<sup>3</sup>   | Да             | Да             | Нет     |


<sup>1</sup> `True` преобразуется в `1`, `False` преобразуется в `0`.
<sup>2</sup> Любое значение кроме `0` преобразуется в `True`, `0` преобразуется в `False`.
<sup>3</sup> Возможно только в случае неотрицательного значения.
<sup>4</sup> Возможно только в случае попадания в диапазон допустимых значений.
<sup>5</sup> При помощи встроенной функции [Yson::ConvertTo](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/udf/list/yson.md?version=v25.1#ysonconvertto).

#### Приведение к типам данных даты и времени

| Тип | Date | Datetime | Timestamp | Interval |
| --- | --- | --- | --- | --- |
| **Bool** | Нет | Нет | Нет | Нет |
| **Int8** | Да | Да | Да | Да |
| **Int16** | Да | Да | Да | Да |
| **Int32** | Да | Да | Да | Да |
| **Int64** | Да | Да | Да | Да |
| **Uint8** | Да | Да | Да | Да |
| **Uint16** | Да | Да | Да | Да |
| **Uint32** | Да | Да | Да | Да |
| **Uint64** | Да | Да | Да | Да |
| **Float** | Нет | Нет | Нет | Нет |
| **Double** | Нет | Нет | Нет | Нет |
| **Decimal** | Нет | Нет | Нет | Нет |
| **String** | Да | Да | Да | Да |
| **Utf8** | Да | Да | Да | Да |
| **Json** | Нет | Нет | Нет | Нет |
| **Yson** | Нет | Нет | Нет | Нет |
| **Uuid** | Нет | Нет | Нет | Нет |
| **Date** | — | Да | Да | Нет |
| **Datetime** | Да | — | Да | Нет |
| **Timestamp** | Да | Да | — | Нет |
| **Interval** | Нет | Нет | Нет | — |

#### Приведение к другим типам данных

| Тип | String | Utf8 | Json | Yson | Uuid |
| --- | --- | --- | --- | --- | --- |
| **Bool** | Да | Нет | Нет | Нет | Нет |
| **Int8** | Да | Нет | Нет | Нет | Нет |
| **Int16** | Да | Нет | Нет | Нет | Нет |
| **Int32** | Да | Нет | Нет | Нет | Нет |
| **Int64** | Да | Нет | Нет | Нет | Нет |
| **Uint8** | Да | Нет | Нет | Нет | Нет |
| **Uint16** | Да | Нет | Нет | Нет | Нет |
| **Uint32** | Да | Нет | Нет | Нет | Нет |
| **Uint64** | Да | Нет | Нет | Нет | Нет |
| **Float** | Да | Нет | Нет | Нет | Нет |
| **Double** | Да | Нет | Нет | Нет | Нет |
| **Decimal** | Да | Нет | Нет | Нет | Нет |
| **String** | — | Да | Да | Да | Да |
| **Utf8** | Да | — | Нет | Нет | Нет |
| **Json** | Да | Да | — | Нет | Нет |
| **Yson** | Да<sup>1</sup> | Нет | Нет | Нет | Нет |
| **Uuid** | Да | Да | Нет | Нет | — |
| **Date** | Да | Да | Нет | Нет | Нет |
| **Datetime** | Да | Да | Нет | Нет | Нет |
| **Timestamp** | Да | Да | Нет | Нет | Нет |
| **Interval** | Да | Да | Нет | Нет | Нет |

<sup>1</sup> При помощи встроенной функции [Yson::ConvertTo](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/udf/list/yson.md?version=v25.1#ysonconvertto).

##### Примеры

<!-- source: ru/yql/reference/_includes/cast_examples.md -->
```yql
SELECT
    CAST("12345" AS Double),                -- 12345.0
    CAST(1.2345 AS Uint8),                  -- 1
    CAST(12345 AS String),                  -- "12345"
    CAST("1.2345" AS Decimal(5, 2)),        -- 1.23
    CAST("xyz" AS Uint64) IS NULL,          -- true, так как не удалось
    CAST(-1 AS Uint16) IS NULL,             -- true, отрицательное в беззнаковое
    CAST([-1, 0, 1] AS List<Uint8?>),             -- [null, 0, 1]
        --Тип элемента опциональный: неудачный элемент в null.
    CAST(["3.14", "bad", "42"] AS List<Float>),   -- [3.14, 42]
        --Тип элемента не опциональный: неудачный элемент удалён.
    CAST(255 AS Uint8),                     -- 255
    CAST(256 AS Uint8) IS NULL;             -- true, выходит за диапазон
```
<!-- endsource: ru/yql/reference/_includes/cast_examples.md -->

### Неявное приведение {#implicit-cast}

Неявное приведение типов, которое возникает в базовых операциях (`+`, `-`, `*`, `/`, `%`) между разными типами данных. В ячейках таблицы указан тип результата операции, если она возможна:

#### Числовые типы

При несовпадении числовых типов сначала выполняется [BITCAST](https://ydb-platform--ydb.viewer.diplodoc.com/ru/yql/reference/syntax/expressions.md?version=v25.1#bitcast) обоих аргументов к типу результата, а потом уже операция.

| Тип | Int8 | Int16 | Int32 | Int64 | Uint8 | Uint16 | Uint32 | Uint64 | Float | Double |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| **Int8** | — | `Int16` | `Int32` | `Int64` | `Int8` | `Uint16` | `Uint32` | `Uint64` | `Float` | `Double` |
| **Int16** | `Int16` | — | `Int32` | `Int64` | `Int16` | `Int16` | `Uint32` | `Uint64` | `Float` | `Double` |
| **Int32** | `Int32` | `Int32` | — | `Int64` | `Int32` | `Int32` | `Int32` | `Uint64` | `Float` | `Double` |
| **Int64** | `Int64` | `Int64` | `Int64` | — | `Int64` | `Int64` | `Int64` | `Int64` | `Float` | `Double` |
| **Uint8** | `Int8` | `Int16` | `Int32` | `Int64` | — | `Uint16` | `Uint32` | `Uint64` | `Float` | `Double` |
| **Uint16** | `Uint16` | `Int16` | `Int32` | `Int64` | `Uint16` | — | `Uint32` | `Uint64` | `Float` | `Double` |
| **Uint32** | `Uint32` | `Uint32` | `Int32` | `Int64` | `Uint32` | `Uint32` | — | `Uint64` | `Float` | `Double` |
| **Uint64** | `Uint64` | `Uint64` | `Uint64` | `Int64` | `Uint64` | `Uint64` | `Uint64` | — | `Float` | `Double` |
| **Float** | `Float` | `Float` | `Float` | `Float` | `Float` | `Float` | `Float` | `Float` | — | `Double` |
| **Double** | `Double` | `Double` | `Double` | `Double` | `Double` | `Double` | `Double` | `Double` | `Double` | — |


#### Типы даты и времени

| Тип               | Date | Datetime   | Timestamp   | Interval | TzDate   | TzDatetime   | TzTimestamp   | Date32   | Datetime64   | Timestamp64   | Interval64 | TzDate32   | TzDatetime64   | TzTimestamp64   |
| ----------------- | ---- | ---------- | ----------- | -------- | -------- | ------------ | ------------- | -------- | ------------ | ------------- | ---------- | ---------- | -------------- | --------------- |
| **Date**          | —    | `DateTime` | `Timestamp` | —        | `TzDate` | `TzDatetime` | `TzTimestamp` | `Date32` | `DateTime64` | `Timestamp64` | —          | `TzDate32` | `TzDatetime64` | `TzTimestamp64` |
| **Datetime**      | —    | —          | `Timestamp` | —        | —        | `TzDatetime` | `TzTimestamp` | —        | `Datetime64` | `Timestamp64` | —          | —          | `TzDatetime64` | `TzTimestamp64` |
| **Timestamp**     | —    | —          | —           | —        | —        | —            | `TzTimestamp` | —        | —            | `Timestamp64` | —          | —          | —              | `TzTimestamp64` |
| **Interval**      | —    | —          | —           | —        | —        | —            | —             | —        | —            | —             | —          | —          | —              | —               |
| **TzDate**        | —    | —          | —           | —        | —        | `TzDatetime` | `TzTimestamp` | —        | —            | —             | —          | `TzDate32` | `TzDatetime64` | `TzTimestamp64` |
| **TzDatetime**    | —    | —          | —           | —        | —        | —            | `TzTimestamp` | —        | —            | —             | —          | —          | `TzDatetime64` | `TzTimestamp64` |
| **TzTimestamp**   | —    | —          | —           | —        | —        | —            | —             | —        | —            | —             | —          | —          | —              | `TzTimestamp64` |
| **Date32**        | —    | —          | —           | —        | —        | —            | —             | —        | `DateTime64` | `Timestamp64` | —          | `TzDate32` | `TzDatetime64` | `TzTimestamp64` |
| **Datetime64**    | —    | —          | —           | —        | —        | —            | —             | —        | —            | `Timestamp64` | —          | —          | `TzDatetime64` | `TzTimestamp64` |
| **Timestamp64**   | —    | —          | —           | —        | —        | —            | —             | —        | —            | —             | —          | —          | —              | `TzTimestamp64` |
| **Interval64**    | —    | —          | —           | —        | —        | —            | —             | —        | —            | —             | —          | —          | —              | —               |
| **TzDate32**      | —    | —          | —           | —        | —        | —            | —             | —        | —            | —             | —          | —          | `TzDatetime64` | `TzTimestamp64` |
| **TzDatetime64**  | —    | —          | —           | —        | —        | —            | —             | —        | —            | —             | —          | —          | —              | `TzTimestamp64` |
| **TzTimestamp64** | —    | —          | —           | —        | —        | —            | —             | —        | —            | —             | —          | —          | —              | —               |
