---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ytsaurus.tech/docs/en/yql/types/primitive.md
  - https://ytsaurus.tech/docs/ru/yql/types/primitive.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ytsaurus.tech/docs/ru/llms.txt

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

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

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

Тип | Описание | Примечания
----- | ----- | -----
`Bool` | Логическое значение. |
`Int8` | Целое число со знаком.<br/>Допустимые значения: от –2<sup>7</sup> до 2<sup>7</sup>–1. |
`Int16` | Целое число со знаком.<br/>Допустимые значения: от –2<sup>15</sup> до 2<sup>15</sup>–1. |
`Int32` | Целое число со знаком.<br/>Допустимые значения: от –2<sup>31</sup> до 2<sup>31</sup>–1. |
`Int64` | Целое число со знаком.<br/>Допустимые значения: от –2<sup>63</sup> до 2<sup>63</sup>–1. |
`Uint8` | Беззнаковое целое число.<br/>Допустимые значения: от 0 до 2<sup>8</sup>–1. |
`Uint16` | Беззнаковое целое число.<br/>Допустимые значения: от 0 до 2<sup>16</sup>–1. |
`Uint32` | Беззнаковое целое число.<br/>Допустимые значения: от 0 до 2<sup>32</sup>–1. |
`Uint64` | Беззнаковое целое число.<br/>Допустимые значения: от 0 до 2<sup>64</sup>–1. |
`Float` | Вещественное число с переменной точностью размером 4 байта. |
`Double` | Вещественное число с переменной точностью размером 8 байт. |
`Decimal` | Вещественное число с указанной точностью, до 35 десятичных знаков |
`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. Не рекомендуется для использования в YTsaurus-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](../../user-guide/storage/formats.md#yson) в текстовом или бинарном представлении | Не поддерживает возможность сравнения
`Uuid` | Универсальный идентификатор [UUID](https://tools.ietf.org/html/rfc4122) |

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

За счет индексированного представления `JsonDocument` позволяет обходить документную модель с использованием `JsonPath` без необходимости парсинга всего содержимого. Это позволяет эффективно выполнять операции из [JSON API](https://ytsaurus.tech/docs/ru/yql/builtins/json.md), уменьшая задержки и стоимость пользовательских запросов. Выполнение запросов над `JsonDocument` может быть до нескольких раз эффективнее в зависимости от типа нагрузки.

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

{% note warning %}

Для хранения чисел (JSON Number) в `JsonDocument`, а также для арифметических операций над ними в [JSON API](https://ytsaurus.tech/docs/ru/yql/builtins/json.md) используется тип [Double](https://en.wikipedia.org/wiki/Double-precision_floating-point_format). Возможна потеря точности при использовании нестандартных представлений чисел в исходном JSON-документе.

{% endnote %}

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

### Базовые типы {#datetime-basic}

Диапазон значений всех базовых временных типов – от полуночи<sup>1</sup> 01.01.1970 до полуночи<sup>1</sup> 01.01.2106.
Диапазон значений базового типа интервала – от -136 лет до +136 лет.

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

<sup>1</sup> Полночью считаем такой момент времени, в которой все компоненты _времени_ равны нулю.

### Расширенные типы {#datetime-extended}

Диапазон значений всех расширенных временных типов – от полуночи<sup>1</sup> 01.01.144169 до н.э. до полуночи<sup>1</sup> 01.01.148107.
Диапазон значений расширенного типа интервала – от -292277 лет до +292277 лет.

Тип | Описание | Примечания
----- | ----- | -----
`Date32` | Момент времени, в который происходит полночь<sup>1</sup> по UTC, точность до дней | Внутреннее представление `Date32` – знаковое целое 32 бит
`Datetime64` | Момент времени по UTC, точность до секунд | Внутреннее представление – знаковое целое 64 бит
`Timestamp64` | Момент времени по UTC, точность до микросекунд | Внутреннее представление – знаковое целое 64 бит
`Interval64` | Интервал времени, точность до микросекунд | Внутреннее представление – знаковое целое 64 бит
`TzDate32` | Момент времени по UTC, в который происходит полночь в заданной таймзоне | Внутреннее представление – знаковое целое 32 бит и метка таймзоны
`TzDateTime64` | Момент времени по UTC с меткой временной зоны, точность до секунд | Внутреннее представление – знаковое целое 64 бит и метка таймзоны
`TzTimestamp64` | Момент времени по UTC с меткой временной зоны, точность до микросекунд | Внутреннее представление – знаковое целое 64 бит и метка таймзоны

<sup>1</sup> Полночью считаем такой момент времени, в которой все компоненты _времени_ равны нулю.

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

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

* При преобразовании ([CAST](https://ytsaurus.tech/docs/ru/yql/syntax/expressions.md#cast), [DateTime::Parse](https://ytsaurus.tech/docs/ru/yql/udf/list/datetime.md#parse), [DateTime::Format](https://ytsaurus.tech/docs/ru/yql/udf/list/datetime.md#format)) в строку и из строки.
* В [DateTime::Split](https://ytsaurus.tech/docs/ru/yql/udf/list/datetime.md#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://ytsaurus.tech/docs/ru/yql/syntax/expressions.md#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> | Да | Да | Нет
**Date32** | Нет | Да<sup>4</sup> | Да<sup>4</sup> | Да | Да | Да<sup>4</sup> | Да | Да | Да | Да | Да | Нет
**Datetime64** | Нет | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да | Да<sup>4</sup> | Да<sup>4</sup> | Да | Да | Да | Да | Нет
**Timestamp64** | Нет | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да<sup>4</sup> | Да | Да | Да | Нет
**Interval64** | Нет | Да<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://ytsaurus.tech/docs/ru/yql/udf/list/yson.md#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** | Нет | Нет | Нет | —
**Date32** | Да | Да | Да | Нет
**Datetime64** | Да | Да | Да | Нет
**Timestamp64** | Да | Да | Да | Нет
**Interval64** | Нет | Нет | Нет | Да

##### Расширенные типы

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

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

Тип | 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** | Да | Да | Нет | Нет | Нет
**Date32** | Да | Да | Нет | Нет | Нет
**Datetime64** | Да | Да | Нет | Нет | Нет
**Timestamp64** | Да | Да | Нет | Нет | Нет
**Interval64** | Да | Да | Нет | Нет | Нет

<sup>1</sup> При помощи встроенной функции [Yson::ConvertTo](https://ytsaurus.tech/docs/ru/yql/udf/list/yson.md#ysonconvertto).

#### Примеры

<!-- source: ru/yql/_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/_includes/cast_examples.md -->

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

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

#### Численные типы

При несовпадении численных типов сначала выполняется 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
--- | --- | --- | --- | --- | --- | --- | ---
**Date** | — | `DateTime` | `Timestamp` | — | `TzDate` | `TzDatetime` | `TzTimestamp`
**Datetime** | — | — | `Timestamp` | — | — | `TzDatetime` | `TzTimestamp`
**Timestamp** | — | — | — | — | — | — | `TzTimestamp`
**Interval** | — | — | — | — | — | — | —
**TzDate** | — | — | — | — | — | `TzDatetime` | `TzTimestamp`
**TzDatetime** | — | — | — | — | — | — | `TzTimestamp`
**TzTimestamp** | — | — | — | — | — | — | —
**Date32** | — | — | — | — | — | — | —
**Datetime64** | — | — | — | — | — | — | —
**Timestamp64** | — | — | — | — | — | — | —
**Interval64** | — | — | — | — | — | — | —
**TzDate32** | — | — | — | — | — | — | —
**TzDatetime64** | — | — | — | — | — | — | —
**TzTimestamp64** | — | — | — | — | — | — | —

##### Расширенные типы

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