# Функции преобразования типов


## [BOOL](BOOL.md)

**Синтаксис:**`BOOL( expression )`

Переводит выражение `expression` в логический тип по следующим правилам:

| Тип                                           | `FALSE`              | `TRUE`        |
|:----------------------------------------------|:---------------------|:--------------|
| <code>Дробное число &#124; Целое число</code> | `0`, `0.0`           | Все остальные |
| `Строка`                                      | Пустая строка (`""`) | Все остальные |
| `Логический`                                  | `FALSE`              | `TRUE`        |
| <code>Дата &#124; Дата и время</code>         | -                    | `TRUE`        |



## [DATE](DATE.md)

**Синтаксис:**`DATE( expression [ , timezone ] )`

Переводит выражение `expression` в формат даты.

Дата должна быть определена в формате `YYYY-MM-DD`.

Если `expression` является числом, то при наличии дополнительного параметра `timezone` дата рассчитывается для указанной временной зоны.



## [DATE_PARSE](DATE_PARSE.md)

**Синтаксис:**`DATE_PARSE( value )`

Переводит выражение `value` в формат даты. В отличие от [DATE](DATE.md), поддерживает множество форматов.



## [DATETIME](DATETIME.md)

**Синтаксис:**`DATETIME( expression [ , timezone ] )`

Переводит выражение `expression` в формат даты и времени. При переводе `Date` в `DateTime` время определяется, как `00:00:00`.
Дата должна быть определена в формате `YYYY-MM-DDThh:mm:ss` или `YYYY-MM-DD hh:mm:ss`.
Числовые значения воспринимаются как время в формате [Unix time](https://ru.wikipedia.org/wiki/Unix-время) и равны количеству секунд, прошедших с 00:00:00 1 января 1970 года, за вычетом поправок, сделанных из-за високосных секунд.

При наличии дополнительного параметра `timezone` дата и время рассчитываются для указанной [временной зоны](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List). Параметр `timezone` должен быть определен в формате `Region/Data_Zone`.



## [DATETIME_PARSE](DATETIME_PARSE.md)

**Синтаксис:**`DATETIME_PARSE( value )`

Переводит выражение `value` в формат даты и времени. В отличие от [DATETIME](DATETIME.md), поддерживает множество форматов. Обработка выражения происходит на стороне источника ClickHouse®. Подробнее о поддерживаемых форматах  читайте в [документации](https://clickhouse.com/docs/en/sql-reference/functions/type-conversion-functions#parsedatetime32besteffort) ClickHouse®.



## [DB_CAST](DB_CAST.md)

**Синтаксис:**`DB_CAST( expression, native_type [ , param_1 [ , param_2 ] ] )`

Переводит выражение `expression` в указанный нативный тип данных `native_type`.

Поддерживаются следующие типы:

| Источник данных   | Тип данных             | Нативный тип          | Параметры нативного типа     | Комментарий                   |
|:------------------|:-----------------------|:----------------------|:-----------------------------|:------------------------------|
| `ClickHouse`      | `Дата`                 | `Date`                |                              |                               |
| `ClickHouse`      | `Дата`                 | `Date32`              |                              |                               |
| `ClickHouse`      | `Дробное число`        | `Float32`             |                              |                               |
| `ClickHouse`      | `Дробное число`        | `Float64`             |                              |                               |
| `ClickHouse`      | `Дробное число`        | `Decimal`             | `Целое число`, `Целое число` |                               |
| `ClickHouse`      | `Целое число`          | `Int8`                |                              |                               |
| `ClickHouse`      | `Целое число`          | `Int16`               |                              |                               |
| `ClickHouse`      | `Целое число`          | `Int32`               |                              |                               |
| `ClickHouse`      | `Целое число`          | `Int64`               |                              |                               |
| `ClickHouse`      | `Целое число`          | `UInt8`               |                              |                               |
| `ClickHouse`      | `Целое число`          | `UInt16`              |                              |                               |
| `ClickHouse`      | `Целое число`          | `UInt32`              |                              |                               |
| `ClickHouse`      | `Целое число`          | `UInt64`              |                              |                               |
| `ClickHouse`      | `Строка`               | `String`              |                              |                               |
| `PostgreSQL`      | `Массив дробных чисел` | `double precision[]`  |                              |                               |
| `PostgreSQL`      | `Массив дробных чисел` | `real[]`              |                              |                               |
| `PostgreSQL`      | `Массив дробных чисел` | `numeric[]`           | `Целое число`, `Целое число` |                               |
| `PostgreSQL`      | `Массив целых чисел`   | `smallint[]`          |                              |                               |
| `PostgreSQL`      | `Массив целых чисел`   | `integer[]`           |                              |                               |
| `PostgreSQL`      | `Массив целых чисел`   | `bigint[]`            |                              |                               |
| `PostgreSQL`      | `Массив строк`         | `text[]`              |                              |                               |
| `PostgreSQL`      | `Массив строк`         | `character varying[]` |                              |                               |
| `PostgreSQL`      | `Массив строк`         | `varchar[]`           |                              |                               |
| `PostgreSQL`      | `Дробное число`        | `double precision`    |                              |                               |
| `PostgreSQL`      | `Дробное число`        | `real`                |                              |                               |
| `PostgreSQL`      | `Дробное число`        | `numeric`             | `Целое число`, `Целое число` |                               |
| `PostgreSQL`      | `Целое число`          | `smallint`            |                              |                               |
| `PostgreSQL`      | `Целое число`          | `integer`             |                              |                               |
| `PostgreSQL`      | `Целое число`          | `bigint`              |                              |                               |
| `PostgreSQL`      | `Строка`               | `text`                |                              |                               |
| `PostgreSQL`      | `Строка`               | `character`           | `Целое число`                | Алиас: `char`                 |
| `PostgreSQL`      | `Строка`               | `character varying`   | `Целое число`                | Алиас: `varchar`              |
| `PostgreSQL`      | `Строка`               | `char`                | `Целое число`                | Алиас для `character`         |
| `PostgreSQL`      | `Строка`               | `varchar`             | `Целое число`                | Алиас для `character varying` |




## [FLOAT](FLOAT.md)

**Синтаксис:**`FLOAT( expression )`

Переводит выражение `expression` в формат дробного числа по следующим правилам:

| Тип                                           | Значение                                                                                                                                                                                                                                        |
|:----------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| <code>Дробное число &#124; Целое число</code> | Исходное значение.                                                                                                                                                                                                                              |
| <code>Дата &#124; Дата и время</code>         | [Unix-время](https://ru.wikipedia.org/wiki/Unix-время) соответствующее дате и времени. Если значение содержит в себе информацию о временной зоне, то она учитывается при вычислении. Если же временная зона неизвестна, то время считается UTC. |
| `Строка`                                      | Число из строки в десятичной записи.                                                                                                                                                                                                            |
| `Логический`                                  | `TRUE` — `1.0`, `FALSE` — `0.0`.                                                                                                                                                                                                                |



## [GEOPOINT](GEOPOINT.md)

**Синтаксис:**`GEOPOINT( value_1 [ , value_2 ] )`

Формирует значение типа геоточка. Принимает на вход строку, либо значение типа "геоточка", либо координаты — широту `value_1` и долготу `value_2`. Если на вход подается одна строка, в ней должен содержаться список из двух чисел, координат (широты и долготы) в JSON-синтаксисе.



## [GEOPOLYGON](GEOPOLYGON.md)

**Синтаксис:**`GEOPOLYGON( value )`

Переводит выражение `value` в формат [геополигона](../dataset/data-types.md#geopolygon). Функция принимает на вход строку вида `[[[lat_1,lon_1], [lat_2,lon_2], ..., [lat_N-1,lon_N-1], [lat_N,lon_N]]]`.



## [INT](INT.md)

**Синтаксис:**`INT( expression )`

Переводит выражение `expression` в формат целого числа по следующим правилам:

| Тип                                   | Значение                                                                                                                                                                                                                                        |
|:--------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `Целое число`                         | Исходное значение.                                                                                                                                                                                                                              |
| `Дробное число`                       | Целая часть числа (округление вниз).                                                                                                                                                                                                            |
| <code>Дата &#124; Дата и время</code> | [Unix-время](https://ru.wikipedia.org/wiki/Unix-время) соответствующее дате и времени. Если значение содержит в себе информацию о временной зоне, то она учитывается при вычислении. Если же временная зона неизвестна, то время считается UTC. |
| `Строка`                              | Число из строки в десятичной записи.                                                                                                                                                                                                            |
| `Логический`                          | `TRUE` — `1`, `FALSE` — `0`.                                                                                                                                                                                                                    |



## [STR](STR.md)

**Синтаксис:**`STR( expression )`

Переводит выражение `expression` к типу строки.



## [TREE](TREE.md)

**Синтаксис:**`TREE( array )`

Переводит выражение `array` в формат `Дерево строк`. Используется для создания [древовидных иерархий](../dataset/data-types.md#tree-hierarchy).