Перейти к основному содержанию

Распространённые проблемы при преобразовании данных

ClickHouse в целом использует те же правила, что и программы на C++. Функции to<type> и cast в некоторых случаях ведут себя по-разному, например для LowCardinality: cast удаляет признак LowCardinality, а функции to<type> — нет. То же самое и с Nullable: такое поведение несовместимо со стандартом SQL, и его можно изменить с помощью настройки cast_keep_nullable.
Учитывайте возможную потерю данных, если значения одного типа преобразуются в тип меньшего размера (например, из Int64 в Int32) или между несовместимыми типами данных (например, из String в Int). Обязательно внимательно проверяйте, соответствует ли результат ожидаемому.
Пример:
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) │
└──────────────────┴─────────────────────┴──────────────────┘

Примечания к функциям toString

Семейство функций toString позволяет преобразовывать числа, строки (но не строки фиксированной длины), даты и значения даты и времени. Все эти функции принимают один аргумент.
  • При преобразовании в строку или из строки значение форматируется или разбирается по тем же правилам, что и для формата TabSeparated (и почти всех остальных текстовых форматов). Если строку не удаётся разобрать, генерируется исключение, и запрос отменяется.
  • При преобразовании дат в числа или наоборот дата соответствует количеству дней с начала эпохи Unix.
  • При преобразовании значений даты и времени в числа или наоборот дата и время соответствуют количеству секунд с начала эпохи Unix.
  • Функция toString для аргумента DateTime может принимать второй аргумент типа String, содержащий имя часового пояса, например: Europe/Amsterdam. В этом случае время форматируется в соответствии с указанным часовым поясом.

Примечания к функциям toDate/toDateTime

Форматы даты и даты со временем для функций toDate/toDateTime задаются следующим образом:
YYYY-MM-DD
YYYY-MM-DD hh:mm:ss
В качестве исключения, при преобразовании числовых типов UInt32, Int32, UInt64 или Int64 в Date, если число больше либо равно 65536, оно интерпретируется как Unix-временная метка (а не как количество дней) и округляется до даты. Это позволяет поддерживать распространённый вариант записи toDate(unix_timestamp), который в противном случае привёл бы к ошибке и потребовал бы использования более громоздкой конструкции toDate(toDateTime(unix_timestamp)). Преобразование между датой и значением типа дата и время выполняется естественным образом: добавлением нулевого времени или отбрасыванием времени. При преобразовании между числовыми типами используются те же правила, что и при присваивании между различными числовыми типами в C++. Пример
Query
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
┌──────────────────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.

CAST

Добавленный в: v1.1.0 Преобразует значение в указанный тип данных. В отличие от функции reinterpret, CAST пытается получить то же значение в целевом типе. Если это невозможно, возникает исключение. Синтаксис
CAST(x, T)
or CAST(x AS T)
or x::T
Аргументы
  • x — Значение любого типа. Any
  • T — Целевой тип данных. String
Возвращаемое значение Возвращает значение, преобразованное в целевой тип данных. Any Примеры Базовое использование
Query
SELECT CAST(42, 'String')
Response
┌─CAST(42, 'String')─┐
│ 42                 │
└────────────────────┘
Использование ключевого слова AS
Query
SELECT CAST('2025-01-01' AS Date)
Response
┌─CAST('2025-01-01', 'Date')─┐
│                 2025-01-01 │
└────────────────────────────┘
Использование синтаксиса ::
Query
SELECT '123'::UInt32
Response
┌─CAST('123', 'UInt32')─┐
│                   123 │
└───────────────────────┘

DATE

Добавленный в: v21.2.0 Преобразует аргумент в тип данных Date. Это псевдоним toDate для совместимости с MySQL. Работает так же, как toDate. Синтаксис
DATE(expr)
Аргументы
  • expr — Значение, которое необходимо преобразовать. String или UInt32 или Date или DateTime
Возвращаемое значение Возвращает значение типа Date. Date Примеры Базовое использование
Query
SELECT DATE('2023-01-01')
Response
2023-01-01

accurateCast

Добавленный в: v1.1.0 Преобразует значение в указанный тип данных. В отличие от CAST, accurateCast выполняет более строгую проверку типов и генерирует исключение, если преобразование приводит к потере точности данных или если такое преобразование невозможно. Эта функция безопаснее обычного CAST, поскольку предотвращает потерю точности и недопустимые преобразования. Синтаксис
accurateCast(x, T)
Аргументы
  • x — Значение для преобразования. Any
  • T — Имя целевого типа данных. String
Возвращаемое значение Возвращает преобразованное значение целевого типа данных. Any Примеры Успешное преобразование
Query
SELECT accurateCast(42, 'UInt16')
Response
┌─accurateCast(42, 'UInt16')─┐
│                        42 │
└───────────────────────────┘
String в число
Query
SELECT accurateCast('123.45', 'Float64')
Response
┌─accurateCast('123.45', 'Float64')─┐
│                            123.45 │
└───────────────────────────────────┘

accurateCastOrDefault

Добавленный в: v21.1.0 Преобразует значение в указанный тип данных. Как accurateCast, но, если преобразование нельзя выполнить без потери точности, возвращает значение по умолчанию вместо того, чтобы генерировать исключение. Если значение по умолчанию передаётся вторым аргументом, оно должно иметь целевой тип. Если значение по умолчанию не указано, используется значение по умолчанию для целевого типа. Синтаксис
accurateCastOrDefault(x, T[, default_value])
Аргументы
  • x — Значение для преобразования. Any
  • T — Имя целевого типа данных. const String
  • default_value — Необязательный параметр. Значение по умолчанию, которое возвращается, если преобразование не удалось. Any
Возвращаемое значение Возвращает преобразованное значение целевого типа данных или значение по умолчанию, если преобразование невозможно. Any Примеры Успешное преобразование
Query
SELECT accurateCastOrDefault(42, 'String')
Response
┌─accurateCastOrDefault(42, 'String')─┐
│ 42                                  │
└─────────────────────────────────────┘
Неудачное преобразование с явно заданным значением по умолчанию
Query
SELECT accurateCastOrDefault('abc', 'UInt32', 999::UInt32)
Response
┌─accurateCastOrDefault('abc', 'UInt32', 999)─┐
│                                         999 │
└─────────────────────────────────────────────┘
Сбой преобразования с неявным значением по умолчанию
Query
SELECT accurateCastOrDefault('abc', 'UInt32')
Response
┌─accurateCastOrDefault('abc', 'UInt32')─┐
│                                      0 │
└────────────────────────────────────────┘

accurateCastOrNull

Добавленный в: v1.1.0 Преобразует значение в указанный тип данных. Как и accurateCast, но возвращает NULL вместо того, чтобы генерировать исключение, если преобразование нельзя выполнить без потери точности. Эта функция сочетает безопасность accurateCast с удобной обработкой ошибок. Синтаксис
accurateCastOrNull(x, T)
Аргументы
  • x — Значение, которое нужно преобразовать. Any
  • T — Имя целевого типа данных. String
Возвращаемое значение Возвращает преобразованное значение целевого типа данных или NULL, если преобразование невозможно. Any Примеры Успешное преобразование
Query
SELECT accurateCastOrNull(42, 'String')
Response
┌─accurateCastOrNull(42, 'String')─┐
│ 42                               │
└──────────────────────────────────┘
При ошибке преобразования возвращается NULL
Query
SELECT accurateCastOrNull('abc', 'UInt32')
Response
┌─accurateCastOrNull('abc', 'UInt32')─┐
│                                ᴺᵁᴸᴸ │
└─────────────────────────────────────┘

formatRow

Добавленный в: v20.7.0 Преобразует произвольные выражения в строку в указанном формате.
Если формат содержит суффикс/префикс, они будут записываться в каждой строке. В этой функции поддерживаются только построчные форматы.
Синтаксис
formatRow(format, x, y, ...)
Аргументы
  • format — Текстовый формат. Например, CSV, TSV. String
  • x, y, ... — Выражения. Any
Возвращаемое значение Отформатированная строка. (для текстовых форматов она обычно заканчивается символом новой строки). String Примеры Базовое использование
Query
SELECT formatRow('CSV', number, 'good')
FROM numbers(3)
Response
┌─formatRow('CSV', number, 'good')─┐
│ 0,"good"

│ 1,"good"

│ 2,"good"

└──────────────────────────────────┘
В пользовательском формате
Query
SELECT formatRow('CustomSeparated', number, 'good')
FROM numbers(3)
SETTINGS format_custom_result_before_delimiter='<prefix>\n', format_custom_result_after_delimiter='<suffix>'
Response
┌─formatRow('CustomSeparated', number, 'good')─┐
│ <prefix>
0    good
<suffix>                   │
│ <prefix>
1    good
<suffix>                   │
│ <prefix>
2    good
<suffix>                   │
└──────────────────────────────────────────────┘

formatRowNoNewline

Добавленный в: v20.7.0 То же, что и formatRow, но без символа новой строки в конце каждой строки. Преобразует произвольные выражения в строку в указанном формате, но удаляет из результата все конечные символы новой строки. Синтаксис
formatRowNoNewline(format, x, y, ...)
Аргументы
  • format — Текстовый формат, например CSV или TSV. String
  • x, y, ... — Выражения. Any
Возвращаемое значение Возвращает отформатированную строку без символов новой строки. String Примеры Базовое использование
Query
SELECT formatRowNoNewline('CSV', number, 'good')
FROM numbers(3)
Response
┌─formatRowNoNewline('CSV', number, 'good')─┐
│ 0,"good"                                  │
│ 1,"good"                                  │
│ 2,"good"                                  │
└───────────────────────────────────────────┘

fromUnixTimestamp64Micro

Добавленный в: v20.5.0 Преобразует Unix-временную метку в микросекундах в значение DateTime64 с точностью до микросекунд. Входное значение интерпретируется как Unix-временная метка с микросекундной точностью (число микросекунд с 1970-01-01 00:00:00 UTC). Синтаксис
fromUnixTimestamp64Micro(value[, timezone])
Аргументы
  • value — Unix-временная метка в микросекундах. Int64
  • timezone — Необязательно. Часовой пояс возвращаемого значения. String
Возвращаемое значение Возвращает значение DateTime64 с точностью до микросекунд. DateTime64(6) Примеры Пример использования
Query
SELECT fromUnixTimestamp64Micro(1640995200123456)
Response
┌─fromUnixTimestamp64Micro(1640995200123456)─┐
│                 2022-01-01 00:00:00.123456 │
└────────────────────────────────────────────┘

fromUnixTimestamp64Milli

Добавленный в: v20.5.0 Преобразует Unix-временную метку в миллисекундах в значение DateTime64 с миллисекундной точностью. Входное значение интерпретируется как Unix-временная метка с миллисекундной точностью (количество миллисекунд, прошедших с 1970-01-01 00:00:00 UTC). Синтаксис
fromUnixTimestamp64Milli(value[, timezone])
Аргументы
  • value — Unix-временная метка в миллисекундах. Int64
  • timezone — Необязательный параметр. Часовой пояс возвращаемого значения. String
Возвращаемое значение Значение DateTime64 с точностью до миллисекунд. DateTime64(3) Примеры Пример использования
Query
SELECT fromUnixTimestamp64Milli(1640995200123)
Response
┌─fromUnixTimestamp64Milli(1640995200123)─┐
│                 2022-01-01 00:00:00.123 │
└─────────────────────────────────────────┘

fromUnixTimestamp64Nano

Добавленный в: v20.5.0 Преобразует Unix-временную метку в наносекундах в значение DateTime64 с точностью до наносекунд. Входное значение интерпретируется как Unix-временная метка с точностью до наносекунд (количество наносекунд, прошедших с 1970-01-01 00:00:00 UTC).
Обратите внимание: входное значение интерпретируется как временная метка в UTC, а не в часовом поясе входного значения.
Синтаксис
fromUnixTimestamp64Nano(value[, timezone])
Аргументы
  • value — Unix-временная метка в наносекундах. Int64
  • timezone — Необязательно. Часовой пояс возвращаемого значения. String
Возвращаемое значение Возвращает значение DateTime64 с точностью до наносекунд. DateTime64(9) Примеры Пример использования
Query
SELECT fromUnixTimestamp64Nano(1640995200123456789)
Response
┌─fromUnixTimestamp64Nano(1640995200123456789)─┐
│                2022-01-01 00:00:00.123456789 │
└──────────────────────────────────────────────┘

fromUnixTimestamp64Second

Добавленный в: v24.12.0 Преобразует Unix-временную метку в секундах в значение DateTime64 с точностью до секунд. Входное значение интерпретируется как Unix-временная метка с точностью до секунд (количество секунд с 1970-01-01 00:00:00 UTC). Синтаксис
fromUnixTimestamp64Second(value[, timezone])
Аргументы
  • value — Unix-временная метка в секундах. Int64
  • timezone — Необязательный. Часовой пояс для возвращаемого значения. String
Возвращаемое значение Возвращает значение DateTime64 с точностью до секунды. DateTime64(0) Примеры Пример использования
Query
SELECT fromUnixTimestamp64Second(1640995200)
Response
┌─fromUnixTimestamp64Second(1640995200)─┐
│                   2022-01-01 00:00:00 │
└───────────────────────────────────────┘

parseDateTime

Добавленный в: v23.3.0 Разбирает строку с датой и временем в соответствии со строкой формата даты MySQL. Эта функция обратна formatDateTime. Она разбирает аргумент типа String, используя строку формата String. Возвращает значение типа DateTime. Синтаксис
parseDateTime(time_string, format[, timezone])
Псевдонимы: TO_UNIXTIME Аргументы
  • time_string — Строка, которую нужно разобрать в DateTime. String
  • format — Строка формата, определяющая, как разбирать time_string. String
  • timezone — Необязательно. Часовой пояс. String
Возвращаемое значение Возвращает значение DateTime, разобранное из входной строки в соответствии со строкой формата в стиле MySQL. DateTime Примеры Пример использования
Query
SELECT parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')
Response
┌─parseDateTime('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│                                       2025-01-04 23:00:00 │
└───────────────────────────────────────────────────────────┘

parseDateTime32BestEffort

Добавленный в: v20.9.0 Преобразует строковое представление даты и времени в тип данных DateTime. Функция разбирает даты и время в форматах ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, ClickHouse и некоторых других форматах. Синтаксис
parseDateTime32BestEffort(time_string[, time_zone])
Аргументы
  • time_string — Строка String, содержащая дату и время для преобразования. String
  • time_zone — Необязательный. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает time_string в формате DateTime. DateTime Примеры Пример использования
Query
SELECT parseDateTime32BestEffort('23/10/2025 12:12:57')
AS parseDateTime32BestEffort
Response
┌─parseDateTime32BestEffort─┐
│       2025-10-23 12:12:57 │
└───────────────────────────┘
С часовым поясом
Query
SELECT parseDateTime32BestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul')
AS parseDateTime32BestEffort
Response
┌─parseDateTime32BestEffort─┐
│       2025-08-18 10:22:16 │
└───────────────────────────┘
Unix-временная метка
Query
SELECT parseDateTime32BestEffort('1284101485')
AS parseDateTime32BestEffort
Response
┌─parseDateTime32BestEffort─┐
│       2015-07-07 12:04:41 │
└───────────────────────────┘

parseDateTime32BestEffortOrNull

Добавленный в: v20.9.0 То же, что и parseDateTime32BestEffort, но при обнаружении формата даты, который невозможно обработать, функция возвращает NULL. Синтаксис
parseDateTime32BestEffortOrNull(time_string[, time_zone])
Аргументы
  • time_string — Строка String, содержащая дату и время для преобразования. String
  • time_zone — Необязательно. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает объект DateTime, разобранный из строки, или NULL, если разобрать строку не удалось. DateTime Примеры Пример использования
Query
SELECT
    parseDateTime32BestEffortOrNull('23/10/2025 12:12:57') AS valid,
    parseDateTime32BestEffortOrNull('invalid date') AS invalid
Response
┌─valid───────────────┬─invalid─┐
│ 2025-10-23 12:12:57 │    ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘

parseDateTime32BestEffortOrZero

Добавленный в: v20.9.0 То же, что и parseDateTime32BestEffort, но при встрече с неподдерживаемым форматом даты функция возвращает нулевую дату или нулевое значение дата-время. Синтаксис
parseDateTime32BestEffortOrZero(time_string[, time_zone])
Аргументы
  • time_string — Строка с датой и временем для преобразования. String
  • time_zone — Необязательно. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает объект DateTime, полученный при разборе строки, или нулевую дату (1970-01-01 00:00:00), если разбор не удался. DateTime Примеры Пример использования
Query
SELECT
    parseDateTime32BestEffortOrZero('23/10/2025 12:12:57') AS valid,
    parseDateTime32BestEffortOrZero('invalid date') AS invalid
Response
┌─valid───────────────┬─invalid─────────────┐
│ 2025-10-23 12:12:57 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘

parseDateTime64

Добавленный в: v24.11.0 Разбирает строку даты и времени с точностью до долей секунды в соответствии со строкой формата даты MySQL. Эта функция является обратной к formatDateTime для DateTime64. Она разбирает аргумент типа String с помощью строки формата String. Возвращает тип DateTime64, который может представлять даты с 1900 по 2299 год с точностью до долей секунды. Синтаксис
parseDateTime64(time_string, format[, timezone])
Аргументы
  • time_string — Строка, которую нужно разобрать как DateTime64. String
  • format — Строка формата, задающая способ разбора time_string. String
  • timezone — Необязательно. Часовой пояс. String
Возвращаемое значение Возвращает значение DateTime64, разобранное из входной строки в соответствии со строкой формата в стиле MySQL. DateTime64 Примеры Пример использования
Query
SELECT parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')
Response
┌─parseDateTime64('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│                                       2025-01-04 23:00:00.123       │
└─────────────────────────────────────────────────────────────────────┘

parseDateTime64BestEffort

Добавленный в: v20.1.0 То же, что и функция parseDateTimeBestEffort, но также разбирает миллисекунды и микросекунды и возвращает тип данных DateTime64. Синтаксис
parseDateTime64BestEffort(time_string[, precision[, time_zone]])
Аргументы
  • time_string — Строка, содержащая дату или дату и время для преобразования. String
  • precision — Необязательно. Требуемая точность. 3 для миллисекунд, 6 для микросекунд. По умолчанию: 3. UInt8
  • time_zone — Необязательно. Часовой пояс. Функция разбирает time_string с учетом часового пояса. String
Возвращаемое значение Возвращает time_string, преобразованную в тип данных DateTime64. DateTime64 Примеры Пример использования
Query
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
┌──────────────────────────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') │
└────────────────────────────┴────────────────────────────────┘

parseDateTime64BestEffortOrNull

Добавленный в: v20.1.0 То же, что и parseDateTime64BestEffort, но возвращает NULL, если встречает формат даты, который невозможно обработать. Синтаксис
parseDateTime64BestEffortOrNull(time_string[, precision[, time_zone]])
Аргументы
  • time_string — Строка, содержащая дату или дату и время для преобразования. String
  • precision — Необязательно. Требуемая точность. 3 для миллисекунд, 6 для микросекунд. По умолчанию: 3. UInt8
  • time_zone — Необязательно. Часовой пояс. Функция разбирает time_string в соответствии с часовым поясом. String
Возвращаемое значение Возвращает time_string, преобразованную в DateTime64, или NULL, если входное значение не удаётся разобрать. DateTime64 или NULL Примеры Пример использования
Query
SELECT parseDateTime64BestEffortOrNull('2025-01-01 01:01:00.123') AS valid,
       parseDateTime64BestEffortOrNull('invalid') AS invalid
Response
┌─valid───────────────────┬─invalid─┐
│ 2025-01-01 01:01:00.123 │    ᴺᵁᴸᴸ │
└─────────────────────────┴─────────┘

parseDateTime64BestEffortOrZero

Добавленный в: v20.1.0 То же, что и parseDateTime64BestEffort, за исключением того, что функция возвращает нулевую дату или нулевое значение дата-время, если встречает формат даты, который не может быть обработан. Синтаксис
parseDateTime64BestEffortOrZero(time_string[, precision[, time_zone]])
Аргументы
  • time_string — Строка, содержащая дату или дату и время для преобразования. String
  • precision — Необязательно. Требуемая точность. 3 для миллисекунд, 6 для микросекунд. По умолчанию: 3. UInt8
  • time_zone — Необязательно. Часовой пояс. Функция разбирает time_string с учетом этого часового пояса. String
Возвращаемое значение Возвращает значение time_string, преобразованное в DateTime64, или нулевую дату/дату и время (1970-01-01 00:00:00.000), если входное значение не удается разобрать. DateTime64 Примеры Пример использования
Query
SELECT parseDateTime64BestEffortOrZero('2025-01-01 01:01:00.123') AS valid,
       parseDateTime64BestEffortOrZero('invalid') AS invalid
Response
┌─valid───────────────────┬─invalid─────────────────┐
│ 2025-01-01 01:01:00.123 │ 1970-01-01 00:00:00.000 │
└─────────────────────────┴─────────────────────────┘

parseDateTime64BestEffortUS

Добавленный в: v22.8.0 То же, что и parseDateTime64BestEffort, но в неоднозначных случаях эта функция отдает предпочтение американскому формату даты (MM/DD/YYYY и т. д.). Синтаксис
parseDateTime64BestEffortUS(time_string [, precision [, time_zone]])
Аргументы
  • time_string — Строка String, содержащая дату или дату и время для преобразования. String
  • precision — Необязательно. Требуемая точность. 3 для миллисекунд, 6 для микросекунд. По умолчанию: 3. UInt8
  • time_zone — Необязательно. Часовой пояс. Функция разбирает time_string в соответствии с указанным часовым поясом. String
Возвращаемое значение Возвращает time_string, преобразованную в DateTime64, с предпочтением американского формата даты в неоднозначных случаях. DateTime64 Примеры Пример использования
Query
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
┌─us_format───────────────┬─fallback_to_standard────┐
│ 2025-02-10 12:30:45.123 │ 2025-08-15 10:15:30.456 │
└─────────────────────────┴─────────────────────────┘

parseDateTime64BestEffortUSOrNull

Добавленный в: v22.8.0 То же, что и parseDateTime64BestEffort, но в неоднозначных случаях эта функция отдаёт предпочтение американскому формату даты (MM/DD/YYYY и т. д.) и возвращает NULL, если встречает формат даты, который не может быть обработан. Синтаксис
parseDateTime64BestEffortUSOrNull(time_string[, precision[, time_zone]])
Аргументы
  • time_string — Строка, содержащая дату или дата и время для преобразования. String
  • precision — Необязательный параметр. Требуемая точность. 3 для миллисекунд, 6 для микросекунд. По умолчанию: 3. UInt8
  • time_zone — Необязательный параметр. Часовой пояс. Функция разбирает time_string в соответствии с этим часовым поясом. String
Возвращаемое значение Возвращает time_string, преобразованную в DateTime64 с приоритетом формата US, или NULL, если входное значение не удаётся разобрать. DateTime64 или NULL Примеры Пример использования
Query
SELECT parseDateTime64BestEffortUSOrNull('02/10/2025 12:30:45.123') AS valid_us,
       parseDateTime64BestEffortUSOrNull('invalid') AS invalid
Response
┌─valid_us────────────────┬─invalid─┐
│ 2025-02-10 12:30:45.123 │    ᴺᵁᴸᴸ │
└─────────────────────────┴─────────┘

parseDateTime64BestEffortUSOrZero

Добавленный в: v22.8.0 То же, что и parseDateTime64BestEffort, но в неоднозначных случаях эта функция предпочитает американский формат даты (MM/DD/YYYY и т. д.) и возвращает нулевую дату или нулевое значение даты-времени, если встречает формат даты, который не может быть обработан. Синтаксис
parseDateTime64BestEffortUSOrZero(time_string [, precision [, time_zone]])
Аргументы
  • time_string — Строка, содержащая дату или дату и время для преобразования. String
  • precision — Необязательно. Требуемая точность: 3 для миллисекунд, 6 для микросекунд. По умолчанию: 3. UInt8
  • time_zone — Необязательно. Часовой пояс. Функция разбирает time_string в соответствии с этим часовым поясом. String
Возвращаемое значение Возвращает time_string, преобразованную в DateTime64 с предпочтением американского формата, или нулевую дату/дату и время (1970-01-01 00:00:00.000), если входное значение не удаётся разобрать. DateTime64 Примеры Пример использования
Query
SELECT parseDateTime64BestEffortUSOrZero('02/10/2025 12:30:45.123') AS valid_us,
       parseDateTime64BestEffortUSOrZero('invalid') AS invalid
Response
┌─valid_us────────────────┬─invalid─────────────────┐
│ 2025-02-10 12:30:45.123 │ 1970-01-01 00:00:00.000 │
└─────────────────────────┴─────────────────────────┘

parseDateTime64InJodaSyntax

Добавленный в: v24.10.0 Разбирает строку даты и времени с точностью до долей секунды в соответствии со строкой формата даты и времени Joda. Эта функция является обратной к formatDateTimeInJodaSyntax для DateTime64. Она разбирает аргумент типа String, используя строку формата в стиле Joda. Возвращает значение типа DateTime64, которое может представлять даты с 1900 по 2299 год с точностью до долей секунды. Описание шаблонов формата см. в документации Joda Time. Синтаксис
parseDateTime64InJodaSyntax(time_string, format[, timezone])
Аргументы
  • time_string — Строка String, которую нужно разобрать в DateTime64. String
  • format — Строка формата в синтаксисе Joda, задающая способ разбора time_string. String
  • timezone — Необязательно. Часовой пояс. String
Возвращаемое значение Возвращает значение DateTime64, разобранное из входной строки в соответствии со строкой формата в стиле Joda. DateTime64 Примеры Пример использования
Query
SELECT parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')
Response
┌─parseDateTime64InJodaSyntax('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│                                                          2025-01-04 23:00:00.123   │
└────────────────────────────────────────────────────────────────────────────────────┘

parseDateTime64InJodaSyntaxOrNull

Добавленный в: v24.10.0 То же, что и parseDateTime64InJodaSyntax, но возвращает NULL, если указан неподдающийся разбору формат даты. Синтаксис
parseDateTime64InJodaSyntaxOrNull(time_string, format[, timezone])
Аргументы
  • time_string — строка, которую нужно разобрать как DateTime64. String
  • format — строка формата в синтаксисе Joda, задающая способ разбора time_string. String
  • timezone — необязательный параметр. Часовой пояс. String
Возвращаемое значение Возвращает значение DateTime64, разобранное из входной строки, или NULL, если разбор не удался. Nullable(DateTime64) Примеры Пример использования
Query
SELECT parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')
Response
┌─parseDateTime64InJodaSyntaxOrNull('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│                                                             2025-01-04 23:00:00.123      │
└──────────────────────────────────────────────────────────────────────────────────────────┘

parseDateTime64InJodaSyntaxOrZero

Добавленный в: v24.10.0 То же, что и parseDateTime64InJodaSyntax, но при неподдающемся разбору формате даты возвращает нулевую дату. Синтаксис
parseDateTime64InJodaSyntaxOrZero(time_string, format[, timezone])
Аргументы
  • time_string — Строка String, которую нужно преобразовать в DateTime64. String
  • format — Строка формата в синтаксисе Joda, задающая способ разбора time_string. String
  • timezone — Необязательный параметр. Часовой пояс. String
Возвращаемое значение Возвращает значение DateTime64, разобранное из входной строки, или нулевое значение DateTime64, если разбор завершился неудачно. DateTime64 Примеры Пример использования
Query
SELECT parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')
Response
┌─parseDateTime64InJodaSyntaxOrZero('2025-01-04 23:00:00.123', 'yyyy-MM-dd HH:mm:ss.SSS')─┐
│                                                              2025-01-04 23:00:00.123     │
└──────────────────────────────────────────────────────────────────────────────────────────┘

parseDateTime64OrNull

Добавленный в: v24.11.0 То же, что и parseDateTime64, но возвращает NULL, если встречается неподдающийся разбору формат даты. Синтаксис
parseDateTime64OrNull(time_string, format[, timezone])
Аргументы
  • time_string — Строка, которую нужно разобрать как DateTime64. String
  • format — Строка формата, задающая способ разбора time_string. String
  • timezone — Необязательный параметр. Часовой пояс. String
Возвращаемое значение Возвращает DateTime64, разобранный из входной строки, или NULL, если разбор не удался. Nullable(DateTime64) Примеры Пример использования
Query
SELECT parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')
Response
┌─parseDateTime64OrNull('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│                                            2025-01-04 23:00:00.123        │
└───────────────────────────────────────────────────────────────────────────┘

parseDateTime64OrZero

Добавленный в: v24.11.0 То же, что и parseDateTime64, но возвращает нулевую дату, если встречает неподдающийся разбору формат даты. Синтаксис
parseDateTime64OrZero(time_string, format[, timezone])
Аргументы
  • time_string — Строка, которую нужно разобрать в DateTime64. String
  • format — Строка формата, задающая, как разобрать time_string. String
  • timezone — Необязательный параметр. Часовой пояс. String
Возвращаемое значение Возвращает DateTime64, разобранный из входной строки, или нулевое значение DateTime64, если разбор не удался. DateTime64 Примеры Пример использования
Query
SELECT parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')
Response
┌─parseDateTime64OrZero('2025-01-04 23:00:00.123', '%Y-%m-%d %H:%i:%s.%f')─┐
│                                             2025-01-04 23:00:00.123       │
└───────────────────────────────────────────────────────────────────────────┘

parseDateTimeBestEffort

Добавленный в: v1.1.0 Преобразует дату и время из строкового представления String в тип данных DateTime. Функция разбирает форматы даты и времени ISO 8601, RFC 1123 - 5.2.14 RFC-822, формат ClickHouse, а также некоторые другие. Поддерживаемые нестандартные форматы:
  • Строка, содержащая 9–10-значную Unix-временную метку.
  • Строка с датой и компонентом времени: 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.
Для всех форматов с разделителями функция разбирает названия месяцев, записанные полностью или в виде первых трех букв названия месяца. Если год не указан, считается, что он равен текущему году. Синтаксис
parseDateTimeBestEffort(time_string[, time_zone])
Аргументы
  • time_string — Строка с датой и временем для преобразования. String
  • time_zone — Необязательный параметр. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает time_string в формате DateTime. DateTime Примеры Пример использования
Query
SELECT parseDateTimeBestEffort('23/10/2025 12:12:57') AS parseDateTimeBestEffort
Response
┌─parseDateTimeBestEffort─┐
│     2025-10-23 12:12:57 │
└─────────────────────────┘
С указанием часового пояса
Query
SELECT parseDateTimeBestEffort('Sat, 18 Aug 2025 07:22:16 GMT', 'Asia/Istanbul') AS parseDateTimeBestEffort
Response
┌─parseDateTimeBestEffort─┐
│     2025-08-18 10:22:16 │
└─────────────────────────┘
Unix-временная метка
Query
SELECT parseDateTimeBestEffort('1735689600') AS parseDateTimeBestEffort
Response
┌─parseDateTimeBestEffort─┐
│     2025-01-01 00:00:00 │
└─────────────────────────┘

parseDateTimeBestEffortOrNull

Добавленный в: v1.1.0 То же, что и parseDateTimeBestEffort, за исключением того, что функция возвращает NULL, если встречает формат даты, который не может обработать. Функция разбирает ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, форматы даты и времени ClickHouse, а также некоторые другие форматы. Поддерживаемые нестандартные форматы:
  • Строка, содержащая 9..10-значную Unix-временную метку.
  • Строка с датой и компонентом времени: 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.
Для всех форматов с разделителями функция разбирает названия месяцев, записанные полностью или по первым трем буквам. Если год не указан, считается, что он равен текущему году. Синтаксис
parseDateTimeBestEffortOrNull(time_string[, time_zone])
Аргументы
  • time_string — Строка, содержащая дату и время для преобразования. String
  • time_zone — Необязательно. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает time_string в виде DateTime или NULL, если входное значение не удаётся разобрать. DateTime или NULL Примеры Пример использования
Query
SELECT parseDateTimeBestEffortOrNull('23/10/2025 12:12:57') AS valid,
       parseDateTimeBestEffortOrNull('invalid') AS invalid
Response
┌─valid───────────────┬─invalid─┐
│ 2025-10-23 12:12:57 │    ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘

parseDateTimeBestEffortOrZero

Добавленный в: v1.1.0 То же, что и parseDateTimeBestEffort, за исключением того, что функция возвращает нулевую дату или нулевое значение дата-времени, если встречает формат даты, который не может быть обработан. Функция разбирает ISO 8601, RFC 1123 - 5.2.14 RFC-822 Date and Time Specification, а также форматы даты и времени ClickHouse и некоторые другие форматы. Поддерживаемые нестандартные форматы:
  • Строка, содержащая 9..10-значную Unix-временную метку.
  • Строка с датой и временем: 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.
Для всех форматов с разделителями функция разбирает названия месяцев, указанные полностью или в виде первых трёх букв. Если год не указан, считается, что он равен текущему году. Синтаксис
parseDateTimeBestEffortOrZero(time_string[, time_zone])
Аргументы
  • time_string — Строка String, содержащая дату и время для преобразования. String
  • time_zone — Необязательно. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает time_string в формате DateTime или нулевую дату/дату-время (1970-01-01 или 1970-01-01 00:00:00), если входное значение не удаётся разобрать. DateTime Примеры Пример использования
Query
SELECT parseDateTimeBestEffortOrZero('23/10/2025 12:12:57') AS valid,
       parseDateTimeBestEffortOrZero('invalid') AS invalid
Response
┌─valid───────────────┬─invalid─────────────┐
│ 2025-10-23 12:12:57 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘

parseDateTimeBestEffortUS

Добавленный в: v1.1.0 Эта функция ведёт себя как parseDateTimeBestEffort для дат в формате ISO, например YYYY-MM-DD hh:mm:ss, а также для других форматов даты, где месяц и день можно определить однозначно, например YYYYMMDDhhmmss, YYYY-MM, DD hh или YYYY-MM-DD hh:mm:ss ±h:mm. Если месяц и день нельзя определить однозначно, например в MM/DD/YYYY, MM-DD-YYYY или MM-DD-YY, функция отдаёт предпочтение американскому формату даты, а не DD/MM/YYYY, DD-MM-YYYY или DD-MM-YY. Исключение из этого правила: если значение месяца больше 12 и меньше либо равно 31, функция возвращается к поведению parseDateTimeBestEffort; например, 15/08/2020 разбирается как 2020-08-15. Синтаксис
parseDateTimeBestEffortUS(time_string[, time_zone])
Аргументы
  • time_stringString с датой и временем для преобразования. String
  • time_zone — Необязательно. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает time_string в виде DateTime, отдавая предпочтение американскому формату даты в неоднозначных случаях. DateTime Примеры Пример использования
Query
SELECT parseDateTimeBestEffortUS('02/10/2025') AS us_format,
       parseDateTimeBestEffortUS('15/08/2025') AS fallback_to_standard
Response
┌─us_format───────────┬─fallback_to_standard─┐
│ 2025-02-10 00:00:00 │  2025-08-15 00:00:00 │
└─────────────────────┴──────────────────────┘

parseDateTimeBestEffortUSOrNull

Добавленный в: v1.1.0 То же, что и функция parseDateTimeBestEffortUS, за исключением того, что при обнаружении формата даты, который не удается обработать, она возвращает NULL. Для форматов дат ISO эта функция ведет себя как parseDateTimeBestEffort, но в неоднозначных случаях предпочитает американский формат даты и при ошибках разбора возвращает NULL. Синтаксис
parseDateTimeBestEffortUSOrNull(time_string[, time_zone])
Аргументы
  • time_string — Строка, содержащая дату и время для преобразования. String
  • time_zone — Необязательный. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает time_string как DateTime с приоритетом формата US или NULL, если входное значение не удаётся разобрать. DateTime или NULL Примеры Пример использования
Query
SELECT parseDateTimeBestEffortUSOrNull('02/10/2025') AS valid_us,
       parseDateTimeBestEffortUSOrNull('invalid') AS invalid
Response
┌─valid_us────────────┬─invalid─┐
│ 2025-02-10 00:00:00 │    ᴺᵁᴸᴸ │
└─────────────────────┴─────────┘

parseDateTimeBestEffortUSOrZero

Добавленный в: v1.1.0 То же, что и функция parseDateTimeBestEffortUS, за исключением того, что при обнаружении формата даты, который не удаётся обработать, она возвращает нулевую дату (1970-01-01) или нулевую дату и время (1970-01-01 00:00:00). Эта функция работает так же, как parseDateTimeBestEffort, для дат в формате ISO, но в неоднозначных случаях предпочитает американский формат даты и при ошибках разбора возвращает ноль. Синтаксис
parseDateTimeBestEffortUSOrZero(time_string[, time_zone])
Аргументы
  • time_string — Строка, содержащая дату и время для преобразования. String
  • time_zone — Необязательно. Часовой пояс, в соответствии с которым разбирается time_string. String
Возвращаемое значение Возвращает time_string в виде DateTime с предпочтением американского формата или нулевую дату/дату-время (1970-01-01 или 1970-01-01 00:00:00), если входное значение не удаётся разобрать. DateTime Примеры Пример использования
Query
SELECT parseDateTimeBestEffortUSOrZero('02/10/2025') AS valid_us,
       parseDateTimeBestEffortUSOrZero('invalid') AS invalid
Response
┌─valid_us────────────┬─invalid─────────────┐
│ 2025-02-10 00:00:00 │ 1970-01-01 00:00:00 │
└─────────────────────┴─────────────────────┘

parseDateTimeInJodaSyntax

Добавленный в: v23.3.0 Разбирает строку с датой и временем в соответствии со строкой формата даты Joda. Эта функция является обратной к formatDateTimeInJodaSyntax. Она разбирает аргумент типа String, используя строку формата в стиле Joda. Возвращает значение типа DateTime. Описание шаблонов формата см. в документации Joda Time. Синтаксис
parseDateTimeInJodaSyntax(time_string, format[, timezone])
Аргументы
  • time_string — Строка для разбора в DateTime. String
  • format — Строка формата в синтаксисе Joda, задающая способ разбора time_string. String
  • timezone — Необязательно. Часовой пояс. String
Возвращаемое значение Возвращает значение DateTime, полученное путём разбора входной строки в соответствии со строкой формата в стиле Joda. DateTime Примеры Пример использования
Query
SELECT parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')
Response
┌─parseDateTimeInJodaSyntax('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│                                                      2025-01-04 23:00:00 │
└──────────────────────────────────────────────────────────────────────────┘

parseDateTimeInJodaSyntaxOrNull

Добавленный в: v23.3.0 То же, что и parseDateTimeInJodaSyntax, но при неподдающемся разбору формате даты возвращает NULL. Синтаксис
parseDateTimeInJodaSyntaxOrNull(time_string, format[, timezone])
Аргументы
  • time_string — Строка, которую нужно разобрать как DateTime. String
  • format — Строка формата в синтаксисе Joda, задающая способ разбора time_string. String
  • timezone — Необязательно. Часовой пояс. String
Возвращаемое значение Возвращает DateTime, разобранный из входной строки, или NULL, если разбор завершился неудачно. Nullable(DateTime) Примеры Пример использования
Query
SELECT parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')
Response
┌─parseDateTimeInJodaSyntaxOrNull('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│                                                         2025-01-04 23:00:00    │
└────────────────────────────────────────────────────────────────────────────────┘

parseDateTimeInJodaSyntaxOrZero

Добавленный в: v23.3.0 То же, что и parseDateTimeInJodaSyntax, но возвращает нулевую дату, если встречается неподдающийся разбору формат даты. Синтаксис
parseDateTimeInJodaSyntaxOrZero(time_string, format[, timezone])
Аргументы
  • time_string — строка, которую нужно разобрать как DateTime. String
  • format — строка формата в синтаксисе Joda, задающая, как разбирать time_string. String
  • timezone — Необязательно. Часовой пояс. String
Возвращаемое значение Возвращает значение DateTime, разобранное из входной строки, или нулевой DateTime, если разобрать строку не удалось. DateTime Примеры Пример использования
Query
SELECT parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')
Response
┌─parseDateTimeInJodaSyntaxOrZero('2025-01-04 23:00:00', 'yyyy-MM-dd HH:mm:ss')─┐
│                                                          2025-01-04 23:00:00   │
└────────────────────────────────────────────────────────────────────────────────┘

parseDateTimeOrNull

Добавленный в: v23.3.0 То же, что и parseDateTime, но возвращает NULL, если встречает неподдающийся разбору формат даты. Синтаксис
parseDateTimeOrNull(time_string, format[, timezone])
Псевдонимы: str_to_date Аргументы
  • time_string — Строка, преобразуемая в DateTime. String
  • format — Строка формата, задающая способ разбора time_string. String
  • timezone — Необязательный параметр. Часовой пояс. String
Возвращаемое значение Возвращает DateTime, разобранный из входной строки, или NULL, если разбор не удался. Nullable(DateTime) Примеры Пример использования
Query
SELECT parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')
Response
┌─parseDateTimeOrNull('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│                                            2025-01-04 23:00:00  │
└─────────────────────────────────────────────────────────────────┘

parseDateTimeOrZero

Добавленный в: v23.3.0 То же, что и parseDateTime, но при неподдающемся разбору формате даты возвращает нулевую дату. Синтаксис
parseDateTimeOrZero(time_string, format[, timezone])
Аргументы
  • time_string — Строка для разбора в DateTime. String
  • format — Строка формата, задающая способ разбора time_string. String
  • timezone — Необязательно. Часовой пояс. String
Возвращаемое значение Возвращает DateTime, разобранный из входной строки, или нулевой DateTime, если разбор не удался. DateTime Примеры Пример использования
Query
SELECT parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')
Response
┌─parseDateTimeOrZero('2025-01-04+23:00:00', '%Y-%m-%d+%H:%i:%s')─┐
│                                             2025-01-04 23:00:00 │
└─────────────────────────────────────────────────────────────────┘

reinterpret

Добавленный в: v1.1.0 Использует ту же последовательность байтов в памяти исходного значения для значения x и интерпретирует её как целевой тип. Синтаксис
reinterpret(x, type)
Аргументы
  • x — Любой тип. Any
  • type — Целевой тип. Если это массив, тип его элементов должен иметь фиксированную длину. String
Возвращаемое значение Значение целевого типа. Any Примеры Пример использования
Query
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
┌─int_to_uint─┬─int_to_float─┬─string_to_int─┐
│         255 │        1e-45 │            49 │
└─────────────┴──────────────┴───────────────┘
Пример типа Array
Query
SELECT reinterpret(x'3108b4403108d4403108b4403108d440', 'Array(Float32)') AS string_to_array_of_Float32
Response
┌─string_to_array_of_Float32─┐
│ [5.626,6.626,5.626,6.626]  │
└────────────────────────────┘

reinterpretAsDate

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Date (предполагая порядок little endian), то есть как количество дней с начала эпохи Unix — 1970-01-01 Синтаксис
reinterpretAsDate(x)
Аргументы Возвращаемое значение Дата. Date Примеры Пример использования
Query
SELECT reinterpretAsDate(65), reinterpretAsDate('A')
Response
┌─reinterpretAsDate(65)─┬─reinterpretAsDate('A')─┐
│            1970-03-07 │             1970-03-07 │
└───────────────────────┴────────────────────────┘

reinterpretAsDateTime

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение DateTime (предполагая порядок little endian), представляющее собой количество дней с начала эпохи Unix 1970-01-01 Синтаксис
reinterpretAsDateTime(x)
Аргументы Возвращаемое значение Дата и время. DateTime Примеры Пример использования
Query
SELECT reinterpretAsDateTime(65), reinterpretAsDateTime('A')
Response
┌─reinterpretAsDateTime(65)─┬─reinterpretAsDateTime('A')─┐
│       1970-01-01 01:01:05 │        1970-01-01 01:01:05 │
└───────────────────────────┴────────────────────────────┘

reinterpretAsFixedString

Добавленный в: v1.1.0 Переинтерпретирует входное значение как строку фиксированной длины (предполагается порядок little endian). Null-байты в конце игнорируются; например, для значения UInt32 255 функция возвращает строку из одного символа. Синтаксис
reinterpretAsFixedString(x)
Аргументы
  • x — значение, которое нужно переинтерпретировать в строку. (U)Int* или Float* или Date или DateTime
Возвращаемое значение Строка фиксированной длины, содержащая байты, представляющие x. FixedString Примеры Пример использования
Query
SELECT
    reinterpretAsFixedString(toDateTime('1970-01-01 01:01:05')),
    reinterpretAsFixedString(toDate('1970-03-07'))
Response
┌─reinterpretAsFixedString(toDateTime('1970-01-01 01:01:05'))─┬─reinterpretAsFixedString(toDate('1970-03-07'))─┐
│ A                                                           │ A                                              │
└─────────────────────────────────────────────────────────────┴────────────────────────────────────────────────┘

reinterpretAsFloat32

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Float32. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определен. Синтаксис
reinterpretAsFloat32(x)
Аргументы Возвращаемое значение Возвращает переинтерпретированное значение x. Float32 Примеры Пример использования
Query
SELECT reinterpretAsUInt32(toFloat32(0.2)) AS x, reinterpretAsFloat32(x)
Response
┌──────────x─┬─reinterpretAsFloat32(x)─┐
│ 1045220557 │                     0.2 │
└────────────┴─────────────────────────┘

reinterpretAsFloat64

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Float64. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не способен представить входной тип, результат не определён. Синтаксис
reinterpretAsFloat64(x)
Аргументы Возвращаемое значение Возвращает переинтерпретированное значение x. Float64 Примеры Пример использования
Query
SELECT reinterpretAsUInt64(toFloat64(0.2)) AS x, reinterpretAsFloat64(x)
Response
┌───────────────────x─┬─reinterpretAsFloat64(x)─┐
│ 4596373779694328218 │                     0.2 │
└─────────────────────┴─────────────────────────┘

reinterpretAsInt128

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Int128. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsInt128(x)
Аргументы Возвращаемое значение Возвращает значение x, переинтерпретированное как Int128 Примеры Пример использования
Query
SELECT
    toInt64(257) AS x,
    toTypeName(x),
    reinterpretAsInt128(x) AS res,
    toTypeName(res)
Response
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int64         │ 257 │ Int128          │
└─────┴───────────────┴─────┴─────────────────┘

reinterpretAsInt16

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Int16. В отличие от CAST, эта функция не пытается сохранить исходное значение: если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsInt16(x)
Аргументы Возвращаемое значение Возвращает переинтерпретированное значение x. Int16 Примеры Пример использования
Query
SELECT
    toInt8(257) AS x,
    toTypeName(x),
    reinterpretAsInt16(x) AS res,
    toTypeName(res)
Response
┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ Int8          │   1 │ Int16           │
└───┴───────────────┴─────┴─────────────────┘

reinterpretAsInt256

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Int256. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsInt256(x)
Аргументы Возвращаемое значение Возвращает переинтерпретированное значение x. Int256 Примеры Пример использования
Query
SELECT
    toInt128(257) AS x,
    toTypeName(x),
    reinterpretAsInt256(x) AS res,
    toTypeName(res)
Response
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int128        │ 257 │ Int256          │
└─────┴───────────────┴─────┴─────────────────┘

reinterpretAsInt32

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Int32. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsInt32(x)
Аргументы Возвращаемое значение Возвращает значение x, реинтерпретированное как Int32. Примеры Пример использования
Query
SELECT
    toInt16(257) AS x,
    toTypeName(x),
    reinterpretAsInt32(x) AS res,
    toTypeName(res)
Response
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int16         │ 257 │ Int32           │
└─────┴───────────────┴─────┴─────────────────┘

reinterpretAsInt64

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Int64. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsInt64(x)
Аргументы Возвращаемое значение Переинтерпретированное значение x. Int64 Примеры Пример использования
Query
SELECT
    toInt32(257) AS x,
    toTypeName(x),
    reinterpretAsInt64(x) AS res,
    toTypeName(res)
Response
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ Int32         │ 257 │ Int64           │
└─────┴───────────────┴─────┴─────────────────┘

reinterpretAsInt8

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа Int8. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определен. Синтаксис
reinterpretAsInt8(x)
Аргументы Возвращаемое значение Возвращает переинтерпретированное значение x. Int8 Примеры Пример использования
Query
SELECT
    toUInt8(257) AS x,
    toTypeName(x),
    reinterpretAsInt8(x) AS res,
    toTypeName(res)
Response
┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ UInt8         │   1 │ Int8            │
└───┴───────────────┴─────┴─────────────────┘

reinterpretAsString

Добавленный в: v1.1.0 Переинтерпретирует входное значение как строку (в порядке little endian). Null-байты в конце игнорируются; например, для значения UInt32 255 функция возвращает строку из одного символа. Синтаксис
reinterpretAsString(x)
Аргументы
  • x — Значение, которое нужно переинтерпретировать в строку. (U)Int* или Float* или Date или DateTime
Возвращаемое значение Строка, содержащая байты, представляющие x. String Примеры Пример использования
Query
SELECT
    reinterpretAsString(toDateTime('1970-01-01 01:01:05')),
    reinterpretAsString(toDate('1970-03-07'))
Response
┌─reinterpretAsString(toDateTime('1970-01-01 01:01:05'))─┬─reinterpretAsString(toDate('1970-03-07'))─┐
│ A                                                      │ A                                         │
└────────────────────────────────────────────────────────┴───────────────────────────────────────────┘

reinterpretAsUInt128

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа UInt128. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsUInt128(x)
Аргументы Возвращаемое значение Возвращает переинтерпретированное значение x. UInt128 Примеры Пример использования
Query
SELECT
    toUInt64(257) AS x,
    toTypeName(x),
    reinterpretAsUInt128(x) AS res,
    toTypeName(res)
Response
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt64        │ 257 │ UInt128         │
└─────┴───────────────┴─────┴─────────────────┘

reinterpretAsUInt16

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа UInt16. В отличие от CAST, функция не пытается сохранить исходное значение — если входной тип не может быть представлен целевым типом, результат не определён. Синтаксис
reinterpretAsUInt16(x)
Аргументы Возвращаемое значение Возвращает переинтерпретированное значение x. UInt16 Примеры Пример использования
Query
SELECT
    toUInt8(257) AS x,
    toTypeName(x),
    reinterpretAsUInt16(x) AS res,
    toTypeName(res)
Response
┌─x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 1 │ UInt8         │   1 │ UInt16          │
└───┴───────────────┴─────┴─────────────────┘

reinterpretAsUInt256

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа UInt256. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsUInt256(x)
Аргументы Возвращаемое значение Возвращает переинтерпретированное значение x. UInt256 Примеры Пример использования
Query
SELECT
    toUInt128(257) AS x,
    toTypeName(x),
    reinterpretAsUInt256(x) AS res,
    toTypeName(res)
Response
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt128       │ 257 │ UInt256         │
└─────┴───────────────┴─────┴─────────────────┘

reinterpretAsUInt32

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа UInt32. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsUInt32(x)
Аргументы Возвращаемое значение Возвращает значение x, реинтерпретированное как UInt32. Примеры Пример использования
Query
SELECT
    toUInt16(257) AS x,
    toTypeName(x),
    reinterpretAsUInt32(x) AS res,
    toTypeName(res)
Response
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt16        │ 257 │ UInt32          │
└─────┴───────────────┴─────┴─────────────────┘

reinterpretAsUInt64

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа UInt64. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsUInt64(x)
Аргументы Возвращаемое значение Переинтерпретированное значение x. UInt64 Примеры Пример использования
Query
SELECT
    toUInt32(257) AS x,
    toTypeName(x),
    reinterpretAsUInt64(x) AS res,
    toTypeName(res)
Response
┌───x─┬─toTypeName(x)─┬─res─┬─toTypeName(res)─┐
│ 257 │ UInt32        │ 257 │ UInt64          │
└─────┴───────────────┴─────┴─────────────────┘

reinterpretAsUInt8

Добавленный в: v1.1.0 Переинтерпретирует входное значение как значение типа UInt8. В отличие от CAST, функция не пытается сохранить исходное значение — если целевой тип не может представить входной тип, результат не определён. Синтаксис
reinterpretAsUInt8(x)
Аргументы Возвращаемое значение Переинтерпретированное значение x. UInt8 Примеры Пример использования
Query
SELECT
    toInt8(-1) AS val,
    toTypeName(val),
    reinterpretAsUInt8(val) AS res,
    toTypeName(res);
Response
┌─val─┬─toTypeName(val)─┬─res─┬─toTypeName(res)─┐
│  -1 │ Int8            │ 255 │ UInt8           │
└─────┴─────────────────┴─────┴─────────────────┘

reinterpretAsUUID

Добавленный в: v1.1.0 Принимает строку длиной 16 байт и возвращает UUID, интерпретируя каждую 8-байтную половину в порядке little-endian. Если строка короче, чем нужно, функция работает так, как будто в конец строки дописано необходимое количество null-байтов. Если строка длиннее 16 байт, лишние байты в конце игнорируются. Синтаксис
reinterpretAsUUID(fixed_string)
Аргументы
  • fixed_string — Байтовая строка в формате big-endian. FixedString
Возвращаемое значение Значение типа UUID. UUID Примеры Преобразование строки в UUID
Query
SELECT reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f')))
Response
┌─reinterpretAsUUID(reverse(unhex('000102030405060708090a0b0c0d0e0f')))─┐
│                                  08090a0b-0c0d-0e0f-0001-020304050607 │
└───────────────────────────────────────────────────────────────────────┘

toBFloat16

Добавленный в: v1.1.0 Преобразует входное значение в значение типа BFloat16. В случае ошибки генерирует исключение. См. также: Синтаксис
toBFloat16(expr)
Аргументы
  • expr — выражение, возвращающее число или строковое представление числа. Выражение
Возвращаемое значение Возвращает 16-битное значение формата brain floating point. BFloat16 Примеры Пример использования
Query
SELECT
toBFloat16(toFloat32(42.7)),
toBFloat16(toFloat32('42.7')),
toBFloat16('42.7')
FORMAT Vertical;
Response
toBFloat16(toFloat32(42.7)): 42.5
toBFloat16(t⋯32('42.7')):    42.5
toBFloat16('42.7'):          42.5

toBFloat16OrNull

Добавленный в: v1.1.0 Преобразует входное значение String в значение типа BFloat16. Если строка не представляет значение с плавающей запятой, функция возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления числовых значений.
Неподдерживаемые аргументы (возвращают NULL):
  • Строковые представления двоичных и шестнадцатеричных значений.
  • Числовые значения.
Функция допускает потерю точности без уведомления при преобразовании из строкового представления.
См. также: Синтаксис
toBFloat16OrNull(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает 16-битное значение в формате brain floating point, иначе — NULL. BFloat16 или NULL Примеры Пример использования
Query
SELECT toBFloat16OrNull('0x5E'), -- неподдерживаемые аргументы
       toBFloat16OrNull('12.3'), -- типичное использование
       toBFloat16OrNull('12.3456789') -- незаметная потеря точности
Response
\N
12.25
12.3125

toBFloat16OrZero

Добавленный в: v1.1.0 Преобразует входное значение String в значение типа BFloat16. Если строка не представляет собой число с плавающей точкой, функция возвращает ноль. Поддерживаемые аргументы:
  • Строковые представления числовых значений.
Неподдерживаемые аргументы (возвращают 0):
  • Строковые представления двоичных и шестнадцатеричных значений.
  • Числовые значения.
Функция допускает скрытую потерю точности при преобразовании из строкового представления.
См. также: Синтаксис
toBFloat16OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает 16-битное значение формата brain floating point, иначе — 0. BFloat16 Примеры Пример использования
Query
SELECT toBFloat16OrZero('0x5E'), -- неподдерживаемые аргументы
       toBFloat16OrZero('12.3'), -- типичное использование
       toBFloat16OrZero('12.3456789') -- незаметная потеря точности
Response
0
12.25
12.3125

toBool

Добавленный в: v22.2.0 Преобразует входное значение в значение типа Bool. Синтаксис
toBool(expr)
Аргументы
  • expr — выражение, возвращающее число или строку. Для строк принимает значения ‘true’ или ‘false’ (регистронезависимо). (U)Int* или Float* или String или Expression
Возвращаемое значение Возвращает true или false в зависимости от результата вычисления аргумента. Bool Примеры Пример использования
Query
SELECT
    toBool(toUInt8(1)),
    toBool(toInt8(-1)),
    toBool(toFloat32(1.01)),
    toBool('true'),
    toBool('false'),
    toBool('FALSE')
FORMAT Vertical
Response
toBool(toUInt8(1)):      true
toBool(toInt8(-1)):      true
toBool(toFloat32(1.01)): true
toBool('true'):          true
toBool('false'):         false
toBool('FALSE'):         false

toDate

Добавленный в: v1.1.0 Преобразует входное значение в тип Date. Поддерживает преобразование из типов String, FixedString, DateTime и числовых типов. Синтаксис
toDate(x)
Аргументы Возвращаемое значение Преобразованное входное значение. Date Примеры Преобразование String в Date
Query
SELECT toDate('2025-04-15')
Response
2025-04-15
Преобразование DateTime в Date
Query
SELECT toDate(toDateTime('2025-04-15 10:30:00'))
Response
2025-04-15
Преобразование целого числа в тип Date
Query
SELECT toDate(20297)
Response
2025-07-28

toDate32

Добавленный в: v21.9.0 Преобразует аргумент в тип данных Date32. Если значение выходит за пределы диапазона, toDate32 возвращает граничные значения, поддерживаемые Date32. Если аргумент имеет тип Date, учитываются его границы. Синтаксис
toDate32(expr)
Аргументы
  • expr — значение для преобразования. String, UInt32 или Date
Возвращаемое значение Возвращает календарную дату. Date32 Примеры В допустимом диапазоне
Query
SELECT toDate32('2025-01-01') AS value, toTypeName(value)
FORMAT Vertical
Response
Строка 1:
──────
value:           2025-01-01
toTypeName(value): Date32
Вне допустимого диапазона
Query
SELECT toDate32('1899-01-01') AS value, toTypeName(value)
FORMAT Vertical
Response
Строка 1:
──────
value:           1900-01-01
toTypeName(value): Date32

toDate32OrDefault

Добавленный в: v21.11.0 Преобразует аргумент в тип данных Date32. Если значение выходит за пределы диапазона, toDate32OrDefault возвращает значение нижней границы, поддерживаемое типом Date32. Если аргумент имеет тип Date, учитываются его границы. Возвращает значение по умолчанию, если получен некорректный аргумент. Синтаксис
toDate32OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, возвращаемое, если преобразование не удалось. Date32
Возвращаемое значение Значение типа Date32 в случае успешного выполнения; в противном случае возвращается значение по умолчанию, если оно передано, или 1900-01-01, если нет. Date32 Примеры Успешное преобразование
Query
SELECT toDate32OrDefault('1930-01-01', toDate32('2020-01-01'))
Response
1930-01-01
Преобразование не удалось
Query
SELECT toDate32OrDefault('xx1930-01-01', toDate32('2020-01-01'))
Response
2020-01-01

toDate32OrNull

Добавленный в: v21.9.0 Преобразует входное значение в значение типа Date32, но возвращает NULL, если передан некорректный аргумент. То же, что и toDate32, но возвращает NULL, если передан некорректный аргумент. Синтаксис
toDate32OrNull(x)
Аргументы
  • x — строковое представление даты. String
Возвращаемое значение Возвращает значение Date32 в случае успеха, в противном случае — NULL. Date32 или NULL Примеры Пример использования
Query
SELECT toDate32OrNull('2025-01-01'), toDate32OrNull('invalid')
Response
┌─toDate32OrNull('2025-01-01')─┬─toDate32OrNull('invalid')─┐
│                   2025-01-01 │                      ᴺᵁᴸᴸ │
└──────────────────────────────┴───────────────────────────┘

toDate32OrZero

Добавленный в: v21.9.0 Преобразует входное значение в значение типа Date32, но при получении некорректного аргумента возвращает нижнюю границу Date32. То же, что и toDate32, но при получении некорректного аргумента возвращает нижнюю границу Date32. См. также: Синтаксис
toDate32OrZero(x)
Аргументы
  • x — строковое представление даты. String
Возвращаемое значение Возвращает значение Date32 в случае успеха, в противном случае — нижнюю границу Date32 (1900-01-01). Date32 Примеры Пример использования
Query
SELECT toDate32OrZero('2025-01-01'), toDate32OrZero('')
Response
┌─toDate32OrZero('2025-01-01')─┬─toDate32OrZero('')─┐
│                   2025-01-01 │         1900-01-01 │
└──────────────────────────────┴────────────────────┘

toDateOrDefault

Добавленный в: v21.11.0 Как и toDate, но в случае ошибки возвращает значение по умолчанию: либо второй аргумент (если он указан), либо, в противном случае, нижнюю границу Date. Синтаксис
toDateOrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если разбор завершился неуспешно. Date
Возвращаемое значение Значение типа Date в случае успешного выполнения; в противном случае возвращается значение по умолчанию, если оно передано, или 1970-01-01, если нет. Date Примеры Успешное преобразование
Query
SELECT toDateOrDefault('2022-12-30')
Response
2022-12-30
Ошибка преобразования
Query
SELECT toDateOrDefault('', CAST('2023-01-01', 'Date'))
Response
2023-01-01

toDateOrNull

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Date, но возвращает NULL, если получает некорректный аргумент. То же, что и toDate, но возвращает NULL, если получает некорректный аргумент. Синтаксис
toDateOrNull(x)
Аргументы
  • x — Строковое представление даты. String
Возвращаемое значение Возвращает значение типа Date в случае успеха, в противном случае — NULL. Date или NULL Примеры Пример использования
Query
SELECT toDateOrNull('2025-12-30'), toDateOrNull('invalid')
Response
┌─toDateOrNull('2025-12-30')─┬─toDateOrNull('invalid')─┐
│                 2025-12-30 │                   ᴺᵁᴸᴸ │
└────────────────────────────┴────────────────────────┘

toDateOrZero

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Date, но возвращает нижнюю границу Date, если передан некорректный аргумент. То же, что и toDate, но при передаче некорректного аргумента возвращает нижнюю границу Date. См. также: Синтаксис
toDateOrZero(x)
Аргументы
  • x — строковое представление даты. String
Возвращаемое значение Возвращает значение типа Date в случае успешного преобразования, в противном случае — нижнюю границу типа Date (1970-01-01). Date Примеры Пример использования
Query
SELECT toDateOrZero('2025-12-30'), toDateOrZero('')
Response
┌─toDateOrZero('2025-12-30')─┬─toDateOrZero('')─┐
│                 2025-12-30 │       1970-01-01 │
└────────────────────────────┴──────────────────┘

toDateTime

Добавленный в: v1.1.0 Преобразует входное значение в тип DateTime.
Если expr — число, оно интерпретируется как количество секунд с начала эпохи Unix (то есть как Unix-временная метка). Если expr — это String, оно может интерпретироваться как Unix-временная метка или как строковое представление даты / даты и времени. Поэтому разбор строковых представлений коротких чисел (до 4 цифр) явно отключён из-за неоднозначности: например, строка '1999' может обозначать как год (неполное строковое представление Date / DateTime), так и Unix-временную метку. Более длинные числовые строки допускаются.
Синтаксис
toDateTime(expr[, time_zone])
Аргументы Возвращаемое значение Возвращает значение типа дата-время. DateTime Примеры Пример использования
Query
SELECT toDateTime('2025-01-01 00:00:00'), toDateTime(1735689600, 'UTC')
FORMAT Vertical
Response
Row 1:
──────
toDateTime('2025-01-01 00:00:00'): 2025-01-01 00:00:00
toDateTime(1735689600, 'UTC'):     2025-01-01 00:00:00

toDateTime32

Добавленный в: v20.9.0 Преобразует входное значение в тип DateTime. Поддерживает преобразование из String, FixedString, Date, Date32, DateTime и числовых типов ((U)Int*, Float*, Decimal). DateTime32 имеет расширенный диапазон по сравнению с DateTime и поддерживает даты от 1900-01-01 до 2299-12-31. Синтаксис
toDateTime32(x[, timezone])
Аргументы
  • x — Входное значение, которое нужно преобразовать. String или FixedString или UInt* или Float* или Date или DateTime или DateTime64
  • timezone — Необязательно. Часовой пояс для возвращаемого значения DateTime. String
Возвращаемое значение Преобразованное входное значение. DateTime Примеры Значение находится в допустимом диапазоне
Query
SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value);
Response
┌───────────────────value─┬─toTypeName(toDateTime64('20255-01-01 00:00:00.000', 3))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3)                                          │
└─────────────────────────┴────────────────────────────────────────────────────────┘
В виде десятичного числа с точностью
Query
SELECT toDateTime64(1735689600.000, 3) AS value, toTypeName(value);
-- без десятичной точки значение всё равно интерпретируется как Unix-временная метка в секундах
SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value);
Response
┌───────────────────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)                              │
└─────────────────────────┴────────────────────────────────────────────┘
С часовым поясом
Query
SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value);
Response
┌───────────────────value─┬─toTypeName(toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul'))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3, 'Asia/Istanbul')                                      │
└─────────────────────────┴─────────────────────────────────────────────────────────────────────┘

toDateTime64

Добавленный в: v20.1.0 Преобразует входное значение в тип DateTime64. Синтаксис
toDateTime64(expr, scale[, timezone])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
  • scale — Размер тика (precision): 10^(-scale) секунд. UInt8
  • timezone — Необязательно. Часовой пояс для указанного объекта DateTime64. String
Возвращаемое значение Возвращает календарную дату и время суток с точностью до долей секунды. DateTime64 Примеры Значение находится в диапазоне
Query
SELECT toDateTime64('2025-01-01 00:00:00.000', 3) AS value, toTypeName(value);
Response
┌───────────────────value─┬─toTypeName(toDateTime64('2025-01-01 00:00:00.000', 3))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3)                                          │
└─────────────────────────┴────────────────────────────────────────────────────────┘
В формате десятичного числа с точностью
Query
SELECT toDateTime64(1546300800.000, 3) AS value, toTypeName(value);
-- Без десятичной точки значение по-прежнему интерпретируется как Unix-временная метка в секундах
SELECT toDateTime64(1546300800000, 3) AS value, toTypeName(value);
Response
┌───────────────────value─┬─toTypeName(toDateTime64(1546300800000, 3))─┐
│ 2282-12-31 00:00:00.000 │ DateTime64(3)                              │
└─────────────────────────┴────────────────────────────────────────────┘
С указанием часового пояса
Query
SELECT toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul') AS value, toTypeName(value);
Response
┌───────────────────value─┬─toTypeName(toDateTime64('2025-01-01 00:00:00', 3, 'Asia/Istanbul'))─┐
│ 2025-01-01 00:00:00.000 │ DateTime64(3, 'Asia/Istanbul')                                      │
└─────────────────────────┴─────────────────────────────────────────────────────────────────────┘

toDateTime64OrDefault

Добавленный в: v21.11.0 Как и toDateTime64, эта функция преобразует входное значение в значение типа DateTime64, но при получении некорректного аргумента возвращает либо значение DateTime64 по умолчанию, либо указанное значение по умолчанию. Синтаксис
toDateTime64OrDefault(expr, scale[, timezone, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • scale — Размер тика (precision): 10^-precision секунд. UInt8
  • timezone — Необязательно. Часовой пояс. String
  • default — Необязательно. Значение по умолчанию, которое возвращается, если разбор завершился неудачно. DateTime64
Возвращаемое значение Значение типа DateTime64 в случае успешного выполнения; в противном случае возвращается значение по умолчанию, если оно передано, или 1970-01-01 00:00:00.000, если нет. DateTime64 Примеры Успешное преобразование
Query
SELECT toDateTime64OrDefault('1976-10-18 00:00:00.30', 3)
Response
1976-10-18 00:00:00.300
Ошибка преобразования
Query
SELECT toDateTime64OrDefault('1976-10-18 00:00:00 30', 3, 'UTC', toDateTime64('2001-01-01 00:00:00.00',3))
Response
2000-12-31 23:00:00.000

toDateTime64OrNull

Добавленный в: v20.1.0 Преобразует входное значение в значение типа DateTime64, но возвращает NULL, если передан некорректный аргумент. То же, что и toDateTime64, но возвращает NULL, если передан некорректный аргумент. Синтаксис
toDateTime64OrNull(x)
Аргументы
  • x — строковое представление даты и времени с субсекундной точностью. String
Возвращаемое значение Возвращает значение DateTime64 в случае успеха, иначе — NULL. DateTime64 или NULL Примеры Пример использования
Query
SELECT toDateTime64OrNull('2025-12-30 13:44:17.123'), toDateTime64OrNull('invalid')
Response
┌─toDateTime64OrNull('2025-12-30 13:44:17.123')─┬─toDateTime64OrNull('invalid')─┐
│                         2025-12-30 13:44:17.123 │                          ᴺᵁᴸᴸ │
└─────────────────────────────────────────────────┴───────────────────────────────┘

toDateTime64OrZero

Добавленный в: v20.1.0 Преобразует входное значение в значение типа DateTime64, но при получении некорректного аргумента возвращает нижнюю границу DateTime64. То же, что и toDateTime64, но при получении некорректного аргумента возвращает нижнюю границу DateTime64. См. также: Синтаксис
toDateTime64OrZero(x)
Аргументы
  • x — Строковое представление даты и времени с субсекундной точностью. String
Возвращаемое значение Если преобразование успешно, возвращает значение DateTime64, в противном случае — нижнюю границу типа DateTime64 (1970-01-01 00:00:00.000). DateTime64 Примеры Пример использования
Query
SELECT toDateTime64OrZero('2025-12-30 13:44:17.123'), toDateTime64OrZero('invalid')
Response
┌─toDateTime64OrZero('2025-12-30 13:44:17.123')─┬─toDateTime64OrZero('invalid')─┐
│                         2025-12-30 13:44:17.123 │             1970-01-01 00:00:00.000 │
└─────────────────────────────────────────────────┴─────────────────────────────────────┘

toDateTimeOrDefault

Добавленный в: v21.11.0 Аналогично toDateTime, но в случае ошибки возвращает значение по умолчанию: либо третий аргумент (если он указан), либо нижнюю границу DateTime. Синтаксис
toDateTimeOrDefault(expr[, timezone, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int*, или Float*
  • timezone — Необязательно. Часовой пояс. String
  • default — Необязательно. Значение по умолчанию, которое возвращается, если разбор завершился неуспешно. DateTime
Возвращаемое значение Значение типа DateTime в случае успешного выполнения; в противном случае возвращается значение по умолчанию, если оно передано, или 1970-01-01 00:00:00, если нет. DateTime Примеры Успешное преобразование
Query
SELECT toDateTimeOrDefault('2022-12-30 13:44:17')
Response
2022-12-30 13:44:17
Ошибка преобразования
Query
SELECT toDateTimeOrDefault('', 'UTC', CAST('2023-01-01', 'DateTime(\'UTC\')'))
Response
2023-01-01 00:00:00

toDateTimeOrNull

Добавленный в: v1.1.0 Преобразует входное значение в значение типа DateTime, но возвращает NULL, если получает некорректный аргумент. То же, что и toDateTime, но возвращает NULL, если получает некорректный аргумент. Синтаксис
toDateTimeOrNull(x)
Аргументы
  • x — Строковое представление даты и времени. String
Возвращаемое значение Возвращает значение DateTime в случае успеха, в противном случае — NULL. DateTime или NULL Примеры Пример использования
Query
SELECT toDateTimeOrNull('2025-12-30 13:44:17'), toDateTimeOrNull('invalid')
Response
┌─toDateTimeOrNull('2025-12-30 13:44:17')─┬─toDateTimeOrNull('invalid')─┐
│                     2025-12-30 13:44:17 │                        ᴺᵁᴸᴸ │
└─────────────────────────────────────────┴─────────────────────────────┘

toDateTimeOrZero

Добавленный в: v1.1.0 Преобразует входное значение в значение типа DateTime, но при получении некорректного аргумента возвращает нижнюю границу DateTime. То же, что и toDateTime, но при получении некорректного аргумента возвращает нижнюю границу DateTime. Синтаксис
toDateTimeOrZero(x)
Аргументы
  • x — Строковое представление даты и времени. String
Возвращаемое значение Возвращает значение DateTime в случае успешного выполнения, в противном случае — нижнюю границу DateTime (1970-01-01 00:00:00). DateTime Примеры Пример использования
Query
SELECT toDateTimeOrZero('2025-12-30 13:44:17'), toDateTimeOrZero('invalid')
Response
┌─toDateTimeOrZero('2025-12-30 13:44:17')─┬─toDateTimeOrZero('invalid')─┐
│                     2025-12-30 13:44:17 │         1970-01-01 00:00:00 │
└─────────────────────────────────────────┴─────────────────────────────┘

toDecimal128

Добавленный в: v18.12.0 Преобразует входное значение в значение типа Decimal(38, S) с масштабом S. Генерирует исключение в случае ошибки. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы:
  • Значения Float* NaN и Inf или их строковые представления (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toDecimal128('0xc0fe', 1);.
Переполнение может возникнуть, если значение expr выходит за пределы Decimal128: (-1*10^(38 - S), 1*10^(38 - S)). Лишние цифры в дробной части отбрасываются (без округления). Лишние цифры в целой части приведут к исключению.
При преобразовании лишние цифры отбрасываются, и при работе со значениями Float32/Float64 результат может быть неожиданным, поскольку операции выполняются с использованием инструкций с плавающей запятой. Например: toDecimal128(1.15, 2) равно 1.14, потому что 1.15 * 100 в арифметике с плавающей запятой дает 114.99. Можно использовать строковый аргумент, чтобы операции выполнялись с базовым целочисленным типом: toDecimal128('1.15', 2) = 1.15
Синтаксис
toDecimal128(expr, S)
Аргументы
  • expr — выражение, возвращающее число или строковое представление числа. Expression
  • S — параметр scale в диапазоне от 0 до 38, задающий, сколько цифр может быть в дробной части числа. UInt8
Возвращаемое значение Возвращает значение типа Decimal(38, S) Decimal128(S) Примеры Пример использования
Query
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
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)

toDecimal128OrDefault

Добавленный в: v21.11.0 Подобно toDecimal128, эта функция преобразует входное значение в значение типа Decimal(38, S), но в случае ошибки возвращает значение по умолчанию. Синтаксис
toDecimal128OrDefault(expr, S[, default])
Аргументы
  • expr — Строковое представление числа. String
  • S — Параметр scale в диапазоне от 0 до 38, который указывает, сколько цифр может содержать дробная часть числа. UInt8
  • default — Необязательно. Значение по умолчанию, возвращаемое, если преобразование в тип Decimal128(S) завершается неуспешно. Decimal128(S)
Возвращаемое значение Значение типа Decimal(38, S) в случае успешного преобразования; в противном случае возвращается переданное значение по умолчанию или 0, если оно не задано. Decimal128(S) Примеры Успешное преобразование
Query
SELECT toDecimal128OrDefault(toString(1/42), 18)
Response
0.023809523809523808
Ошибка преобразования
Query
SELECT toDecimal128OrDefault('Inf', 0, CAST('-1', 'Decimal128(0)'))
Response
-1

toDecimal128OrNull

Добавленный в: v20.1.0 Преобразует входное значение в значение типа Decimal(38, S), но в случае ошибки возвращает NULL. Аналогично toDecimal128, но при ошибках преобразования возвращает NULL вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы (возвращают NULL):
  • Значения или строковые представления значений Float* NaN и Inf (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений.
  • Значения, выходящие за пределы Decimal128: (-1*10^(38 - S), 1*10^(38 - S)).
См. также: Синтаксис
toDecimal128OrNull(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Expression
  • S — Параметр scale в диапазоне от 0 до 38, задающий, сколько цифр может содержать дробная часть числа. UInt8
Возвращаемое значение Возвращает значение типа Decimal(38, S) в случае успеха, иначе — NULL. Decimal128(S) или NULL Примеры Пример использования
Query
SELECT toDecimal128OrNull('42.7', 2), toDecimal128OrNull('invalid', 2)
Response
┌─toDecimal128OrNull('42.7', 2)─┬─toDecimal128OrNull('invalid', 2)─┐
│                         42.70 │                             ᴺᵁᴸᴸ │
└───────────────────────────────┴──────────────────────────────────┘

toDecimal128OrZero

Добавленный в: v20.1.0 Преобразует входное значение в значение типа Decimal(38, S), но в случае ошибки возвращает 0. Аналогично toDecimal128, но при ошибках преобразования возвращает 0 вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы (возвращается 0):
  • Значения Float* NaN и Inf или их строковые представления (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений.
Если входное значение выходит за пределы Decimal128:(-1*10^(38 - S), 1*10^(38 - S)), функция возвращает 0.
Синтаксис
toDecimal128OrZero(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Expression
  • S — параметр scale в диапазоне от 0 до 38, который задаёт, сколько цифр может быть в дробной части числа. UInt8
Возвращаемое значение При успешном выполнении возвращает значение Decimal(38, S), в противном случае — 0. Decimal128(S) Примеры Базовое использование
Query
SELECT toDecimal128OrZero('42.7', 2), toDecimal128OrZero('invalid', 2)
Response
┌─toDecimal128OrZero('42.7', 2)─┬─toDecimal128OrZero('invalid', 2)─┐
│                         42.70 │                             0.00 │
└───────────────────────────────┴──────────────────────────────────┘

toDecimal256

Добавленный в: v20.8.0 Преобразует входное значение в значение типа Decimal(76, S) с масштабом S. В случае ошибки генерирует исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы:
  • Значения или строковые представления значений Float* NaN и Inf (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toDecimal256('0xc0fe', 1);.
Переполнение может возникнуть, если значение expr выходит за пределы диапазона Decimal256: (-1*10^(76 - S), 1*10^(76 - S)). Лишние цифры в дробной части отбрасываются (без округления). Лишние цифры в целой части приводят к исключению.
При преобразовании лишние цифры отбрасываются, и при работе со входными значениями Float32/Float64 результат может оказаться неожиданным, поскольку операции выполняются с использованием инструкций с плавающей точкой. Например: toDecimal256(1.15, 2) равно 1.14, потому что 1.15 * 100 в арифметике с плавающей точкой равно 114.99. Можно использовать входное значение типа String, чтобы операции выполнялись с использованием базового целочисленного типа: toDecimal256('1.15', 2) = 1.15
Синтаксис
toDecimal256(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Expression
  • S — параметр scale от 0 до 76, задающий, сколько знаков может быть в дробной части числа. UInt8
Возвращаемое значение Возвращает значение типа Decimal(76, S). Decimal256(S) Примеры Пример использования
Query
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
Строка 1:
──────
a:      99
type_a: Decimal(76, 1)
b:      99.67
type_b: Decimal(76, 2)
c:      99.67
type_c: Decimal(76, 3)

toDecimal256OrDefault

Добавленный в: v21.11.0 Как и toDecimal256, эта функция преобразует входное значение в тип Decimal(76, S), но в случае ошибки возвращает значение по умолчанию. Синтаксис
toDecimal256OrDefault(expr, S[, default])
Аргументы
  • expr — Строковое представление числа. String
  • S — Параметр scale в диапазоне от 0 до 76, задающий, сколько цифр может быть в дробной части числа. UInt8
  • default — Необязательно. Значение по умолчанию, которое возвращается, если разбор в тип Decimal256(S) завершается неуспешно. Decimal256(S)
Возвращаемое значение Значение типа Decimal(76, S) в случае успешного выполнения; в противном случае возвращается значение по умолчанию, если оно передано, или 0, если нет. Decimal256(S) Примеры Успешное преобразование
Query
SELECT toDecimal256OrDefault(toString(1/42), 76)
Response
0.023809523809523808
Ошибка преобразования
Query
SELECT toDecimal256OrDefault('Inf', 0, CAST('-1', 'Decimal256(0)'))
Response
-1

toDecimal256OrNull

Добавленный в: v20.8.0 Преобразует входное значение в значение типа Decimal(76, S), но в случае ошибки возвращает NULL. Аналогично toDecimal256, но при ошибках преобразования возвращает NULL вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы (возвращается NULL):
  • Значения Float* NaN и Inf, а также их строковые представления (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений.
  • Значения, выходящие за пределы Decimal256: (-1 * 10^(76 - S), 1 * 10^(76 - S)).
См. также: Синтаксис
toDecimal256OrNull(expr, S)
Аргументы
  • expr — выражение, возвращающее число или строковое представление числа. Выражение
  • S — параметр scale в диапазоне от 0 до 76, задающий, сколько цифр может быть в дробной части числа. UInt8
Возвращаемое значение В случае успеха возвращает значение Decimal(76, S), в противном случае — NULL. Decimal256(S) или NULL Примеры Пример использования
Query
SELECT toDecimal256OrNull('42.7', 2), toDecimal256OrNull('invalid', 2)
Response
┌─toDecimal256OrNull('42.7', 2)─┬─toDecimal256OrNull('invalid', 2)─┐
│                         42.70 │                             ᴺᵁᴸᴸ │
└───────────────────────────────┴──────────────────────────────────┘

toDecimal256OrZero

Добавленный в: v20.8.0 Преобразует входное значение в значение типа Decimal(76, S), но в случае ошибки возвращает 0. Аналогична toDecimal256, но при ошибках преобразования возвращает 0 вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы (возвращается 0):
  • Значения или строковые представления значений Float* NaN и Inf (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений.
Если входное значение выходит за пределы Decimal256: (-1*10^(76 - S), 1*10^(76 - S)), функция возвращает 0.
См. также: Синтаксис
toDecimal256OrZero(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Expression
  • S — Параметр scale в диапазоне от 0 до 76, задающий количество цифр в дробной части числа. UInt8
Возвращаемое значение Возвращает значение Decimal(76, S) в случае успеха, иначе 0. Decimal256(S) Примеры Пример использования
Query
SELECT toDecimal256OrZero('42.7', 2), toDecimal256OrZero('invalid', 2)
Response
┌─toDecimal256OrZero('42.7', 2)─┬─toDecimal256OrZero('invalid', 2)─┐
│                         42.70 │                             0.00 │
└───────────────────────────────┴──────────────────────────────────┘

toDecimal32

Добавленный в: v18.12.0 Преобразует входное значение в значение типа Decimal(9, S) с масштабом S. В случае ошибки генерирует исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы:
  • Значения или строковые представления значений Float* NaN и Inf (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toDecimal32('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за пределы Decimal32: (-1*10^(9 - S), 1*10^(9 - S)). Лишние цифры в дробной части отбрасываются (без округления). Лишние цифры в целой части приводят к исключению.
При преобразовании лишние цифры отбрасываются, и при работе со входными значениями Float32/Float64 результат может оказаться неожиданным, поскольку операции выполняются с использованием инструкций для чисел с плавающей точкой. Например: toDecimal32(1.15, 2) равно 1.14, потому что в арифметике с плавающей точкой 1.15 * 100 равно 114.99. Можно использовать входное значение типа String, чтобы операции выполнялись с использованием базового целочисленного типа: toDecimal32('1.15', 2) = 1.15
Синтаксис
toDecimal32(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
  • S — Параметр scale в диапазоне от 0 до 9, указывающий, сколько цифр может быть в дробной части числа. UInt8
Возвращаемое значение Возвращает значение типа Decimal(9, S) Decimal32(S) Примеры Пример использования
Query
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
Строка 1:
──────
a:      2
type_a: Decimal(9, 1)
b:      4.2
type_b: Decimal(9, 2)
c:      4.2
type_c: Decimal(9, 3)

toDecimal32OrDefault

Добавленный в: v21.11.0 Как и toDecimal32, эта функция преобразует входное значение в значение типа Decimal(9, S), но в случае ошибки возвращает значение по умолчанию. Синтаксис
toDecimal32OrDefault(expr, S[, default])
Аргументы
  • expr — Строковое представление числа. String
  • S — Параметр масштаба от 0 до 9, задающий, сколько цифр может быть в дробной части числа. UInt8
  • default — Необязательно. Значение по умолчанию, которое возвращается, если не удалось выполнить разбор в тип Decimal32(S). Decimal32(S)
Возвращаемое значение Значение типа Decimal(9, S) в случае успешного выполнения; в противном случае возвращается переданное значение по умолчанию или 0, если оно не задано. Decimal32(S) Примеры Успешное преобразование
Query
SELECT toDecimal32OrDefault(toString(0.0001), 5)
Response
0.0001
Ошибка преобразования
Query
SELECT toDecimal32OrDefault('Inf', 0, CAST('-1', 'Decimal32(0)'))
Response
-1

toDecimal32OrNull

Добавленный в: v20.1.0 Преобразует входное значение в значение типа Decimal(9, S), но в случае ошибки возвращает NULL. Аналогична toDecimal32, но при ошибках преобразования возвращает NULL вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы (возвращает NULL):
  • Значения или строковые представления значений Float* NaN и Inf (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений.
  • Значения, выходящие за границы Decimal32:(-1*10^(9 - S), 1*10^(9 - S)).
См. также: Синтаксис
toDecimal32OrNull(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
  • S — параметр масштаба в диапазоне от 0 до 9, задающий, сколько цифр может быть в дробной части числа. UInt8
Возвращаемое значение В случае успеха возвращается значение Decimal(9, S), в противном случае — NULL. Decimal32(S) или NULL Примеры Пример использования
Query
SELECT toDecimal32OrNull('42.7', 2), toDecimal32OrNull('invalid', 2)
Response
┌─toDecimal32OrNull('42.7', 2)─┬─toDecimal32OrNull('invalid', 2)─┐
│                        42.70 │                            ᴺᵁᴸᴸ │
└──────────────────────────────┴─────────────────────────────────┘

toDecimal32OrZero

Добавленный в: v20.1.0 Преобразует входное значение в значение типа Decimal(9, S), но в случае ошибки возвращает 0. Аналогично toDecimal32, но при ошибках преобразования возвращает 0 вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы (возвращается 0):
  • Значения или строковые представления значений Float* NaN и Inf (регистронезависимые).
  • Строковые представления двоичных и шестнадцатеричных значений.
Если входное значение выходит за пределы Decimal32: (-1*10^(9 - S), 1*10^(9 - S)), функция возвращает 0.
Синтаксис
toDecimal32OrZero(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или его строковое представление. Выражение
  • S — параметр масштаба со значением от 0 до 9, задающий, сколько цифр может быть в дробной части числа. UInt8
Возвращаемое значение В случае успеха возвращает значение Decimal(9, S), в противном случае — 0. Decimal32(S) Примеры Пример использования
Query
SELECT toDecimal32OrZero('42.7', 2), toDecimal32OrZero('invalid', 2)
Response
┌─toDecimal32OrZero('42.7', 2)─┬─toDecimal32OrZero('invalid', 2)─┐
│                        42.70 │                            0.00 │
└──────────────────────────────┴─────────────────────────────────┘

toDecimal64

Добавленный в: v18.12.0 Преобразует входное значение в значение типа Decimal(18, S) с масштабом S. Генерирует исключение в случае ошибки. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы:
  • Значения или строковые представления значений Float* NaN и Inf (регистронезависимо).
  • Строковые представления бинарных и шестнадцатеричных значений, например SELECT toDecimal64('0xc0fe', 1);.
Переполнение может произойти, если значение expr выходит за пределы диапазона Decimal64: (-1*10^(18 - S), 1*10^(18 - S)). Лишние цифры в дробной части отбрасываются (без округления). Лишние цифры в целой части приведут к исключению.
При преобразовании лишние цифры отбрасываются, и при работе с входными значениями Float32/Float64 результат может быть неожиданным, поскольку операции выполняются с использованием арифметики с плавающей запятой. Например: toDecimal64(1.15, 2) равно 1.14, потому что 1.15 * 100 в арифметике с плавающей запятой равно 114.99. Можно использовать входное значение типа String, чтобы в операциях использовался базовый целочисленный тип: toDecimal64('1.15', 2) = 1.15
Синтаксис
toDecimal64(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или его строковое представление. Выражение
  • S — параметр масштаба от 0 до 18, указывающий, сколько цифр может быть в дробной части числа. UInt8
Возвращаемое значение Возвращает десятичное значение. Decimal(18, S) Примеры Пример использования
Query
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
Строка 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)

toDecimal64OrDefault

Добавленный в: v21.11.0 Как и toDecimal64, эта функция преобразует входное значение в тип Decimal(18, S), но в случае ошибки возвращает значение по умолчанию. Синтаксис
toDecimal64OrDefault(expr, S[, default])
Аргументы
  • expr — Строковое представление числа. String
  • S — Параметр масштаба в диапазоне от 0 до 18, задающий, сколько цифр может содержать дробная часть числа. UInt8
  • default — Необязательно. Значение по умолчанию, которое возвращается, если преобразование в тип Decimal64(S) не удалось. Decimal64(S)
Возвращаемое значение Значение типа Decimal(18, S) в случае успешного преобразования; в противном случае возвращается значение по умолчанию, если оно было передано, или 0, если нет. Decimal64(S) Примеры Успешное преобразование
Query
SELECT toDecimal64OrDefault(toString(0.0001), 18)
Response
0.0001
Не удалось преобразовать
Query
SELECT toDecimal64OrDefault('Inf', 0, CAST('-1', 'Decimal64(0)'))
Response
-1

toDecimal64OrNull

Добавленный в: v20.1.0 Преобразует входное значение в значение типа Decimal(18, S), но в случае ошибки возвращает NULL. Аналогично toDecimal64, но при ошибках преобразования возвращает NULL вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы (возвращают NULL):
  • Значения Float* NaN и Inf, а также их строковые представления (регистронезависимые).
  • Строковые представления двоичных и шестнадцатеричных значений.
  • Значения, выходящие за пределы Decimal64: (-1*10^(18 - S), 1*10^(18 - S)).
См. также: Синтаксис
toDecimal64OrNull(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
  • S — параметр масштаба в диапазоне от 0 до 18, задающий, сколько цифр может содержать дробная часть числа. UInt8
Возвращаемое значение Возвращает значение Decimal(18, S) в случае успеха, иначе — NULL. Decimal64(S) или NULL Примеры Пример использования
Query
SELECT toDecimal64OrNull('42.7', 2), toDecimal64OrNull('invalid', 2)
Response
┌─toDecimal64OrNull('42.7', 2)─┬─toDecimal64OrNull('invalid', 2)─┐
│                        42.70 │                            ᴺᵁᴸᴸ │
└──────────────────────────────┴─────────────────────────────────┘

toDecimal64OrZero

Добавленный в: v20.1.0 Преобразует входное значение в значение типа Decimal(18, S), но в случае ошибки возвращает 0. Аналогична toDecimal64, но при ошибках преобразования возвращает 0 вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения или строковые представления типа Float*.
Неподдерживаемые аргументы (возвращается 0):
  • Значения или строковые представления значений Float* NaN и Inf (регистронезависимо).
  • Строковые представления двоичных и шестнадцатеричных значений.
Если входное значение выходит за пределы Decimal64:(-1*10^(18 - S), 1*10^(18 - S)), функция возвращает 0.
См. также: Синтаксис
toDecimal64OrZero(expr, S)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
  • S — параметр масштаба в диапазоне от 0 до 18, определяющий, сколько цифр может быть в дробной части числа. UInt8
Возвращаемое значение Возвращает значение Decimal(18, S) в случае успеха, иначе 0. Decimal64(S) Примеры Пример использования
Query
SELECT toDecimal64OrZero('42.7', 2), toDecimal64OrZero('invalid', 2)
Response
┌─toDecimal64OrZero('42.7', 2)─┬─toDecimal64OrZero('invalid', 2)─┐
│                        42.70 │                            0.00 │
└──────────────────────────────┴─────────────────────────────────┘

toDecimalString

Добавленный в: v23.3.0 Преобразует числовое значение в String с указанным количеством знаков после запятой. Функция округляет входное значение до указанного числа десятичных знаков. Если у входного значения меньше знаков после запятой, чем требуется, результат дополняется нулями, чтобы получить ровно указанное количество знаков после запятой. Синтаксис
toDecimalString(number, scale)
Аргументы
  • number — Числовое значение, которое нужно преобразовать в строку. Может иметь любой числовой тип (Int, UInt, Float, Decimal). Int8 or Int16 or Int32 or Int64 or UInt8 or UInt16 or UInt32 or UInt64 or Float32 or Float64 or Decimal
  • scale — Количество цифр для отображения в дробной части. При необходимости результат будет округлён. UInt8
Возвращаемое значение Возвращает строковое представление числа с ровно указанным количеством цифр в дробной части. String Примеры Округление и форматирование числа
Query
SELECT toDecimalString(2.1456, 2)
Response
┌─toDecimalString(2.1456, 2)─┐
│ 2.15                       │
└────────────────────────────┘
Заполнить нулями
Query
SELECT toDecimalString(5, 3)
Response
┌─toDecimalString(5, 3)─┐
│ 5.000                 │
└───────────────────────┘
Разные числовые типы
Query
SELECT toDecimalString(CAST(123.456 AS Decimal(10,3)), 2) AS decimal_val,
       toDecimalString(CAST(42.7 AS Float32), 4) AS float_val
Response
┌─decimal_val─┬─float_val─┐
│ 123.46      │ 42.7000   │
└─────────────┴───────────┘

toFixedString

Добавленный в: v1.1.0 Преобразует аргумент String в тип FixedString(N) (строку фиксированной длины N). Если строка содержит меньше байтов, чем N, справа она дополняется null-байтами. Если строка содержит больше байтов, чем N, генерируется исключение. Синтаксис
toFixedString(s, N)
Аргументы
  • s — Строка, которую нужно преобразовать. String
  • N — Длина результирующей FixedString. const UInt*
Возвращаемое значение Возвращает FixedString длиной N. FixedString(N) Примеры Пример использования
Query
SELECT toFixedString('foo', 8) AS s;
Response
┌─s─────────────┐
│ foo\0\0\0\0\0 │
└───────────────┘

toFloat32

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Float32. Генерирует исключение в случае ошибки. Поддерживаемые аргументы:
  • Значения типа (U)Int*.
  • Строковые представления (U)Int8/16/32/128/256.
  • Значения типа Float*, включая NaN и Inf.
  • Строковые представления Float*, включая NaN и Inf (регистронезависимые).
Неподдерживаемые аргументы:
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toFloat32('0xc0fe');.
См. также: Синтаксис
toFloat32(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
Возвращаемое значение Возвращает 32-битное значение с плавающей точкой. Float32 Примеры Пример использования
Query
SELECT
    toFloat32(42.7),
    toFloat32('42.7'),
    toFloat32('NaN')
FORMAT Vertical
Response
Строка 1:
──────
toFloat32(42.7):   42.7
toFloat32('42.7'): 42.7
toFloat32('NaN'):  nan

toFloat32OrDefault

Добавленный в: v21.11.0 Как и toFloat32, эта функция преобразует входное значение в значение типа Float32, но в случае ошибки возвращает значение по умолчанию. Если значение default не указано, то в случае ошибки возвращается 0. Синтаксис
toFloat32OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если не удалось выполнить разбор. Float32
Возвращаемое значение В случае успеха возвращает значение типа Float32, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. Float32 Примеры Успешное преобразование
Query
SELECT toFloat32OrDefault('8', CAST('0', 'Float32'))
Response
8
Ошибка преобразования
Query
SELECT toFloat32OrDefault('abc', CAST('0', 'Float32'))
Response
0

toFloat32OrNull

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Float32, но в случае ошибки возвращает NULL. Аналогично toFloat32, но при ошибках преобразования возвращает NULL вместо генерации исключения. Поддерживаемые аргументы:
  • Значения типа (U)Int*.
  • Строковые представления (U)Int8/16/32/128/256.
  • Значения типа Float*, включая NaN и Inf.
  • Строковые представления Float*, включая NaN и Inf (регистронезависимо).
Неподдерживаемые аргументы (возвращают NULL):
  • Строковые представления двоичных и шестнадцатеричных значений, например: SELECT toFloat32OrNull('0xc0fe');.
  • Недопустимые строковые форматы.
См. также: Синтаксис
toFloat32OrNull(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа Float32 в случае успеха, в противном случае — NULL. Float32 или NULL Примеры Пример использования
Query
SELECT
    toFloat32OrNull('42.7'),
    toFloat32OrNull('NaN'),
    toFloat32OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toFloat32OrNull('42.7'): 42.7
toFloat32OrNull('NaN'):  nan
toFloat32OrNull('abc'):  \N

toFloat32OrZero

Добавленный в: v1.1.0 Преобразует входное значение в тип Float32, но в случае ошибки возвращает 0. Аналогично toFloat32, но при ошибках преобразования возвращает 0 вместо генерации исключения. См. также: Синтаксис
toFloat32OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает 32-битное значение Float32 в случае успеха, иначе — 0. Float32 Примеры Пример использования
Query
SELECT
    toFloat32OrZero('42.7'),
    toFloat32OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toFloat32OrZero('42.7'): 42.7
toFloat32OrZero('abc'):  0

toFloat64

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Float64. Генерирует исключение в случае ошибки. Поддерживаемые аргументы:
  • Значения типа (U)Int*.
  • Строковые представления значений типа (U)Int8/16/32/128/256.
  • Значения типа Float*, включая NaN и Inf.
  • Строковые представления значений типа Float*, включая NaN и Inf (регистронезависимо).
Неподдерживаемые аргументы:
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toFloat64('0xc0fe');.
См. также: Синтаксис
toFloat64(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Expression
Возвращаемое значение Возвращает 64-битное значение с плавающей точкой. Float64 Примеры Пример использования
Query
SELECT
    toFloat64(42.7),
    toFloat64('42.7'),
    toFloat64('NaN')
FORMAT Vertical
Response
Строка 1:
──────
toFloat64(42.7):   42.7
toFloat64('42.7'): 42.7
toFloat64('NaN'):  nan

toFloat64OrDefault

Добавленный в: v21.11.0 Как и toFloat64, эта функция преобразует входное значение в значение типа Float64, но в случае ошибки возвращает значение по умолчанию. Если значение default не указано, то в случае ошибки возвращается 0. Синтаксис
toFloat64OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, возвращаемое при неуспешном парсинге. Float64
Возвращаемое значение При успешном выполнении возвращает значение типа Float64, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. Float64 Примеры Успешное преобразование
Query
SELECT toFloat64OrDefault('8', CAST('0', 'Float64'))
Response
8
Преобразование не удалось
Query
SELECT toFloat64OrDefault('abc', CAST('0', 'Float64'))
Response
0

toFloat64OrNull

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Float64, но в случае ошибки возвращает NULL. Аналогично toFloat64, но при ошибках преобразования возвращает NULL вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Значения типа (U)Int*.
  • Строковые представления (U)Int8/16/32/128/256.
  • Значения типа Float*, включая NaN и Inf.
  • Строковые представления значений типа Float*, включая NaN и Inf (регистронезависимо).
Неподдерживаемые аргументы (возвращается NULL):
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toFloat64OrNull('0xc0fe');.
  • Недопустимые строковые форматы.
См. также: Синтаксис
toFloat64OrNull(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает 64-битное значение типа Float64 в случае успеха, в противном случае — NULL. Float64 или NULL Примеры Пример использования
Query
SELECT
    toFloat64OrNull('42.7'),
    toFloat64OrNull('NaN'),
    toFloat64OrNull('abc')
FORMAT Vertical
Response
строка 1:
──────
toFloat64OrNull('42.7'): 42.7
toFloat64OrNull('NaN'):  nan
toFloat64OrNull('abc'):  \N

toFloat64OrZero

Добавленный в: v1.1.0 Преобразует входное значение в Float64, но в случае ошибки возвращает 0. Аналогично toFloat64, но при ошибках преобразования возвращает 0 вместо того, чтобы генерировать исключение. См. также: Синтаксис
toFloat64OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение В случае успеха возвращает 64-битное значение с плавающей точкой, в противном случае — 0. Float64 Примеры Пример использования
Query
SELECT
    toFloat64OrZero('42.7'),
    toFloat64OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toFloat64OrZero('42.7'): 42.7
toFloat64OrZero('abc'):  0

toInt128

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Int128. В случае ошибки генерирует исключение. Функция использует округление к нулю, то есть отбрасывает дробную часть числа. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt128('0xc0fe');.
Если входное значение не укладывается в диапазон Int128, происходит переполнение или потеря значащих разрядов. Это не считается ошибкой.
См. также: Синтаксис
toInt128(expr)
Аргументы
  • expr — Выражение, возвращающее число или его строковое представление. Expression
Возвращаемое значение Возвращает 128-битное целое число. Int128 Примеры Пример использования
Query
SELECT
    toInt128(-128),
    toInt128(-128.8),
    toInt128('-128')
FORMAT Vertical
Response
Строка 1:
──────
toInt128(-128):   -128
toInt128(-128.8): -128
toInt128('-128'): -128

toInt128OrDefault

Добавленный в: v21.11.0 Как и toInt128, эта функция преобразует входное значение в тип Int128, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, то в случае ошибки возвращается 0. Синтаксис
toInt128OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int*, или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если разбор не удался. Int128
Возвращаемое значение При успешном выполнении возвращает значение типа Int128, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. Int128 Примеры Успешное преобразование
Query
SELECT toInt128OrDefault('-128', CAST('-1', 'Int128'))
Response
-128
Преобразование не удалось
Query
SELECT toInt128OrDefault('abc', CAST('-1', 'Int128'))
Response
-1

toInt128OrNull

Добавленный в: v20.8.0 Как и toInt128, эта функция преобразует входное значение в значение типа Int128, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращают NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных чисел, например SELECT toInt128OrNull('0xc0fe');.
Если входное значение не укладывается в диапазон Int128, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toInt128OrNull(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int128, а если преобразование не удалось — NULL. Int128 или NULL Примеры Пример использования
Query
SELECT
    toInt128OrNull('-128'),
    toInt128OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt128OrNull('-128'): -128
toInt128OrNull('abc'):  \N

toInt128OrZero

Добавленный в: v20.8.0 Преобразует входное значение в тип Int128, но в случае ошибки возвращает 0. Работает как toInt128, но возвращает 0 вместо того, чтобы генерировать исключение. См. также: Синтаксис
toInt128OrZero(x)
Аргументы Возвращаемое значение Возвращает преобразованное входное значение или 0, если преобразование не удалось. Int128 Примеры Пример использования
Query
SELECT toInt128OrZero('123')
Response
123
При ошибке преобразования возвращается ноль
Query
SELECT toInt128OrZero('abc')
Response
0

toInt16

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Int16. Генерирует исключение в случае ошибки. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений типа Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например: SELECT toInt16('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int16, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой. Например: SELECT toInt16(32768) == -32768;.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
См. также: Синтаксис
toInt16(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Expression
Возвращаемое значение Возвращает 16-битное целое число. Int16 Примеры Пример использования
Query
SELECT
    toInt16(-16),
    toInt16(-16.16),
    toInt16('-16')
FORMAT Vertical
Response
Строка 1:
──────
toInt16(-16):    -16
toInt16(-16.16): -16
toInt16('-16'):  -16

toInt16OrDefault

Добавленный в: v21.11.0 Как и toInt16, эта функция преобразует входное значение в тип Int16, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, то в случае ошибки возвращается 0. Синтаксис
toInt16OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если преобразование не удалось. Int16
Возвращаемое значение Возвращает значение типа Int16 в случае успешного преобразования; в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. Int16 Примеры Успешное преобразование
Query
SELECT toInt16OrDefault('-16', CAST('-1', 'Int16'))
Response
-16
Ошибка преобразования
Query
SELECT toInt16OrDefault('abc', CAST('-1', 'Int16'))
Response
-1

toInt16OrNull

Добавленный в: v1.1.0 Как и toInt16, эта функция преобразует входное значение в значение типа Int16, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращается NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt16OrNull('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int16, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toInt16OrNull(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int16, а если преобразование не удалось — NULL. Int16 или NULL Примеры Пример использования
Query
SELECT
    toInt16OrNull('-16'),
    toInt16OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt16OrNull('-16'): -16
toInt16OrNull('abc'): \N

toInt16OrZero

Добавленный в: v1.1.0 Подобно toInt16, эта функция преобразует входное значение в значение типа Int16, но в случае ошибки возвращает 0. Поддерживаемые аргументы:
  • Строковые представления значений (U)Int*.
Неподдерживаемые аргументы (возвращается 0):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt16OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int16, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой.
См. также: Синтаксис
toInt16OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int16; если преобразование не удаётся, возвращается 0. Int16 Примеры Пример использования
Query
SELECT
    toInt16OrZero('16'),
    toInt16OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt16OrZero('16'): 16
toInt16OrZero('abc'): 0

toInt256

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Int256. Генерирует исключение в случае ошибки. Функция использует округление к нулю, то есть отбрасывает дробную часть числа. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt256('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int256, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой.
См. также: Синтаксис
toInt256(expr)
Аргументы
  • expr — выражение, возвращающее число или его строковое представление. Expression
Возвращаемое значение Возвращает 256-битное целое значение. Int256 Примеры Пример использования
Query
SELECT
    toInt256(-256),
    toInt256(-256.256),
    toInt256('-256')
FORMAT Vertical
Response
Строка 1:
──────
toInt256(-256):     -256
toInt256(-256.256): -256
toInt256('-256'):   -256

toInt256OrDefault

Добавленный в: v21.11.0 Как и toInt256, эта функция преобразует входное значение в значение типа Int256, но в случае ошибки возвращает значение по умолчанию. Если значение default не указано, то в случае ошибки возвращается 0. Синтаксис
toInt256OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String, (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если парсинг не удался. Int256
Возвращаемое значение При успешном выполнении возвращает значение типа Int256, в противном случае — значение по умолчанию, если оно было передано, или 0, если нет. Int256 Примеры Успешное преобразование
Query
SELECT toInt256OrDefault('-256', CAST('-1', 'Int256'))
Response
-256
Ошибка преобразования
Query
SELECT toInt256OrDefault('abc', CAST('-1', 'Int256'))
Response
-1

toInt256OrNull

Добавленный в: v20.8.0 Подобно toInt256, эта функция преобразует входное значение в значение типа Int256, но при ошибке возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращается NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt256OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах Int256, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toInt256OrNull(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int256; если преобразование не удалось, возвращает NULL. Int256 или NULL Примеры Пример использования
Query
SELECT
    toInt256OrNull('-256'),
    toInt256OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt256OrNull('-256'): -256
toInt256OrNull('abc'):  \N

toInt256OrZero

Добавленный в: v20.8.0 Преобразует входное значение в тип Int256, но в случае ошибки возвращает 0. Аналогична toInt256, но возвращает 0 вместо генерации исключения. См. также: Синтаксис
toInt256OrZero(x)
Аргументы Возвращаемое значение Преобразованное входное значение; если преобразование не удалось, возвращается 0. Int256 Примеры Пример использования
Query
SELECT toInt256OrZero('123')
Response
123
При ошибке преобразования возвращается ноль
Query
SELECT toInt256OrZero('abc')
Response
0

toInt32

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Int32. В случае ошибки генерирует исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений типа Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt32('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int32, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой. Например: SELECT toInt32(2147483648) == -2147483648;
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
См. также: Синтаксис
toInt32(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Expression
Возвращаемое значение Возвращает 32-битное целое число. Int32 Примеры Пример использования
Query
SELECT
    toInt32(-32),
    toInt32(-32.32),
    toInt32('-32')
FORMAT Vertical
Response
Строка 1:
──────
toInt32(-32):    -32
toInt32(-32.32): -32
toInt32('-32'):  -32

toInt32OrDefault

Добавленный в: v21.11.0 Как и toInt32, эта функция преобразует входное значение в значение типа Int32, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, при ошибке возвращается 0. Синтаксис
toInt32OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или его строковое представление. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если парсинг завершился неудачно. Int32
Возвращаемое значение При успешном выполнении возвращает значение типа Int32, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. Int32 Примеры Успешное преобразование
Query
SELECT toInt32OrDefault('-32', CAST('-1', 'Int32'))
Response
-32
Ошибка преобразования
Query
SELECT toInt32OrDefault('abc', CAST('-1', 'Int32'))
Response
-1

toInt32OrNull

Добавленный в: v1.1.0 Как и toInt32, эта функция преобразует входное значение в значение типа Int32, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращает NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt32OrNull('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int32, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toInt32OrNull(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int32, а если преобразование не удалось — NULL. Int32 или NULL Примеры Пример использования
Query
SELECT
    toInt32OrNull('-32'),
    toInt32OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt32OrNull('-32'): -32
toInt32OrNull('abc'): \N

toInt32OrZero

Добавленный в: v1.1.0 Как и toInt32, эта функция преобразует входное значение в значение типа Int32, но в случае ошибки возвращает 0. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращают 0):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt32OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах Int32, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toInt32OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int32, а если преобразование невозможно — 0. Int32 Примеры Пример использования
Query
SELECT
    toInt32OrZero('32'),
    toInt32OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt32OrZero('32'): 32
toInt32OrZero('abc'): 0

toInt64

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Int64. Генерирует исключение в случае ошибки. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt64('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int64, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой. Например: SELECT toInt64(9223372036854775808) == -9223372036854775808;
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
См. также: Синтаксис
toInt64(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Поддерживаются: значения или строковые представления значений типа (U)Int*, значения типа Float*. Не поддерживаются: строковые представления значений Float*, включая NaN и Inf, а также строковые представления двоичных и шестнадцатеричных значений. Expression
Возвращаемое значение Возвращает 64-битное целое число. Int64 Примеры Пример использования
Query
SELECT
    toInt64(-64),
    toInt64(-64.64),
    toInt64('-64')
FORMAT Vertical
Response
строка 1:
──────
toInt64(-64):    -64
toInt64(-64.64): -64
toInt64('-64'):  -64

toInt64OrDefault

Добавленный в: v21.11.0 Как и toInt64, эта функция преобразует входное значение в тип Int64, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, то в случае ошибки возвращается 0. Синтаксис
toInt64OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательный параметр. Значение по умолчанию, которое возвращается, если не удалось выполнить парсинг. Int64
Возвращаемое значение Возвращает значение типа Int64 в случае успеха; в противном случае возвращает переданное значение по умолчанию, а если оно не указано — 0. Int64 Примеры Успешное преобразование
Query
SELECT toInt64OrDefault('-64', CAST('-1', 'Int64'))
Response
-64
Не удалось преобразовать
Query
SELECT toInt64OrDefault('abc', CAST('-1', 'Int64'))
Response
-1

toInt64OrNull

Добавленный в: v1.1.0 Как и toInt64, эта функция преобразует входное значение в значение типа Int64, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления значений (U)Int*.
Неподдерживаемые аргументы (возвращается NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt64OrNull('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int64, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toInt64OrNull(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int64; в противном случае — NULL, если преобразование выполнить не удалось. Int64 или NULL Примеры Пример использования
Query
SELECT
    toInt64OrNull('-64'),
    toInt64OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt64OrNull('-64'): -64
toInt64OrNull('abc'): \N

toInt64OrZero

Добавленный в: v1.1.0 Преобразует входное значение в тип Int64, но в случае ошибки возвращает 0. Аналогично toInt64, но возвращает 0 вместо генерации исключения. См. также: Синтаксис
toInt64OrZero(x)
Аргументы Возвращаемое значение Возвращает преобразованное входное значение; в случае ошибки преобразования возвращает 0. Int64 Примеры Пример использования
Query
SELECT toInt64OrZero('123')
Response
123
При неудачном преобразовании возвращается ноль
Query
SELECT toInt64OrZero('abc')
Response
0

toInt8

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Int8. При ошибке генерирует исключение. Поддерживаемые аргументы:
  • Значения или строковые представления значений типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt8('0xc0fe');.
Если входное значение не может быть представлено в диапазоне Int8, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой. Например: SELECT toInt8(128) == -128;.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
См. также: Синтаксис
toInt8(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
Возвращаемое значение Возвращает 8-битное целочисленное значение. Int8 Примеры Пример использования
Query
SELECT
    toInt8(-8),
    toInt8(-8.8),
    toInt8('-8')
FORMAT Vertical
Response
Строка 1:
──────
toInt8(-8):   -8
toInt8(-8.8): -8
toInt8('-8'): -8

toInt8OrDefault

Добавленный в: v21.11.0 Как и toInt8, эта функция преобразует входное значение в значение типа Int8, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, то при ошибке возвращается 0. Синтаксис
toInt8OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если разбор завершился неудачно. Int8
Возвращаемое значение В случае успеха возвращает значение типа Int8, в противном случае — значение по умолчанию, если оно было передано, или 0, если нет. Int8 Примеры Успешное преобразование
Query
SELECT toInt8OrDefault('-8', CAST('-1', 'Int8'))
Response
-8
Не удалось преобразовать
Query
SELECT toInt8OrDefault('abc', CAST('-1', 'Int8'))
Response
-1

toInt8OrNull

Добавленный в: v1.1.0 Как и toInt8, эта функция преобразует входное значение в значение типа Int8, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращают NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt8OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона Int8, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой.
См. также: Синтаксис
toInt8OrNull(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int8 или NULL, если преобразование не удалось. Int8 или NULL Примеры Пример использования
Query
SELECT
    toInt8OrNull('-8'),
    toInt8OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt8OrNull('-8'):  -8
toInt8OrNull('abc'): \N

toInt8OrZero

Добавленный в: v1.1.0 Как и toInt8, эта функция преобразует входное значение в значение типа Int8, но в случае ошибки возвращает 0. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращают 0):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toInt8OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах Int8, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toInt8OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа Int8, а если преобразование не удалось — 0. Int8 Примеры Пример использования
Query
SELECT
    toInt8OrZero('8'),
    toInt8OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toInt8OrZero('8'): 8
toInt8OrZero('abc'): 0

toInterval

Добавленный в: v25.4.0 Создает значение Interval из числового значения и строки с единицей измерения. Эта функция предоставляет единый способ создавать интервалы разных типов (секунды, минуты, часы, дни, недели, месяцы, кварталы, годы) с помощью одной функции, указывая единицу измерения в виде строкового аргумента. Строка единицы измерения регистронезависима. Это эквивалентно вызову функций для конкретных типов, таких как toIntervalSecond, toIntervalMinute, toIntervalDay и т. д., но позволяет динамически указывать единицу измерения в виде строкового параметра. Синтаксис
toInterval(value, unit)
Аргументы
  • value — Числовое значение, задающее количество единиц. Может быть любого числового типа: Int8 or Int16 or Int32 or Int64 or UInt8 or UInt16 or UInt32 or UInt64 or Float32 or Float64
  • unit — Единица времени. Должна быть строковой константой. Допустимые значения: ‘nanosecond’, ‘microsecond’, ‘millisecond’, ‘second’, ‘minute’, ‘hour’, ‘day’, ‘week’, ‘month’, ‘quarter’, ‘year’. String
Возвращаемое значение Возвращает значение типа Interval указанного вида. Тип результата зависит от единицы времени: IntervalNanosecond, IntervalMicrosecond, IntervalMillisecond, IntervalSecond, IntervalMinute, IntervalHour, IntervalDay, IntervalWeek, IntervalMonth, IntervalQuarter или IntervalYear. Interval Примеры Создание интервалов с разными единицами времени
Query
SELECT
    toInterval(5, 'second') AS seconds,
    toInterval(3, 'day') AS days,
    toInterval(2, 'month') AS months
Response
┌─seconds─┬─days─┬─months─┐
│ 5       │ 3    │ 2      │
└─────────┴──────┴────────┘
Используйте интервалы в операциях с датами
Query
SELECT
    now() AS current_time,
    now() + toInterval(1, 'hour') AS one_hour_later,
    now() - toInterval(7, 'day') AS week_ago
Response
┌─────────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 │
└──────────────────────┴─────────────────────┴─────────────────────┘
Динамическое создание интервала
Query
SELECT toDate('2025-01-01') + toInterval(number, 'day') AS dates
FROM numbers(5)
Response
┌──────dates─┐
│ 2025-01-01 │
│ 2025-01-02 │
│ 2025-01-03 │
│ 2025-01-04 │
│ 2025-01-05 │
└────────────┘

toIntervalDay

Добавленный в: v1.1.0 Возвращает интервал в n дней типа данных IntervalDay. Синтаксис
toIntervalDay(n)
Аргументы
  • n — Количество дней. Целые числа, их строковые представления, а также числа с плавающей точкой. (U)Int* или Float* или String
Возвращаемое значение Возвращает интервал длиной в n дней. Interval Примеры Пример использования
Query
WITH
    toDate('2025-06-15') AS date,
    toIntervalDay(5) AS interval_to_days
SELECT date + interval_to_days AS result
Response
┌─────result─┐
│ 2025-06-20 │
└────────────┘

toIntervalHour

Добавленный в: v1.1.0 Возвращает интервал в n часов с типом данных IntervalHour. Синтаксис
toIntervalHour(n)
Аргументы
  • n — Количество часов. Целые числа, их строковые представления, а также числа с плавающей точкой. Int* или UInt* или Float* или String
Возвращаемое значение Возвращает интервал длительностью n часов. Interval Примеры Пример использования
Query
WITH
    toDate('2025-06-15') AS date,
    toIntervalHour(12) AS interval_to_hours
SELECT date + interval_to_hours AS result
Response
┌──────────────result─┐
│ 2025-06-15 12:00:00 │
└─────────────────────┘

toIntervalMicrosecond

Добавленный в: v22.6.0 Возвращает интервал в n микросекунд типа IntervalMicrosecond. Синтаксис
toIntervalMicrosecond(n)
Аргументы Возвращаемое значение Возвращает интервал длительностью n микросекунд. Interval Примеры Пример использования
Query
WITH
    toDateTime('2025-06-15') AS date,
    toIntervalMicrosecond(30) AS interval_to_microseconds
SELECT date + interval_to_microseconds AS result
Response
┌─────────────────────result─┐
│ 2025-06-15 00:00:00.000030 │
└────────────────────────────┘

toIntervalMillisecond

Добавленный в: v22.6.0 Возвращает интервал длиной n миллисекунд типа данных IntervalMillisecond. Синтаксис
toIntervalMillisecond(n)
Аргументы Возвращаемое значение Возвращает интервал длиной в n миллисекунд. Interval Примеры Пример использования
Query
WITH
    toDateTime('2025-06-15') AS date,
    toIntervalMillisecond(30) AS interval_to_milliseconds
SELECT date + interval_to_milliseconds AS result
Response
┌──────────────────result─┐
│ 2025-06-15 00:00:00.030 │
└─────────────────────────┘

toIntervalMinute

Добавленный в: v1.1.0 Возвращает интервал длительностью n минут типа данных IntervalMinute. Синтаксис
toIntervalMinute(n)
Аргументы
  • n — Количество минут. Целые числа или их строковые представления, а также числа с плавающей точкой. (U)Int* или Float* или String
Возвращаемое значение Возвращает интервал в n минут. Interval Примеры Пример использования
Query
WITH
    toDate('2025-06-15') AS date,
    toIntervalMinute(12) AS interval_to_minutes
SELECT date + interval_to_minutes AS result
Response
┌──────────────result─┐
│ 2025-06-15 00:12:00 │
└─────────────────────┘

toIntervalMonth

Добавленный в: v1.1.0 Возвращает интервал в n месяцев типа IntervalMonth. Синтаксис
toIntervalMonth(n)
Аргументы Возвращаемое значение Возвращает интервал в n месяцев. Interval Примеры Пример использования
Query
WITH
    toDate('2025-06-15') AS date,
    toIntervalMonth(1) AS interval_to_month
SELECT date + interval_to_month AS result
Response
┌─────result─┐
│ 2025-07-15 │
└────────────┘

toIntervalNanosecond

Добавленный в: v22.6.0 Возвращает интервал в n наносекунд типа данных IntervalNanosecond. Синтаксис
toIntervalNanosecond(n)
Аргументы Возвращаемое значение Возвращает интервал в n наносекунд. Interval Примеры Пример использования
Query
WITH
    toDateTime('2025-06-15') AS date,
    toIntervalNanosecond(30) AS interval_to_nanoseconds
SELECT date + interval_to_nanoseconds AS result
Response
┌────────────────────────result─┐
│ 2025-06-15 00:00:00.000000030 │
└───────────────────────────────┘

toIntervalQuarter

Добавленный в: v1.1.0 Возвращает интервал в n кварталов типа данных IntervalQuarter. Синтаксис
toIntervalQuarter(n)
Аргументы Возвращаемое значение Возвращает интервал в n кварталов. Interval Примеры Пример использования
Query
WITH
    toDate('2025-06-15') AS date,
    toIntervalQuarter(1) AS interval_to_quarter
SELECT date + interval_to_quarter AS result
Response
┌─────result─┐
│ 2025-09-15 │
└────────────┘

toIntervalSecond

Добавленный в: v1.1.0 Возвращает интервал длительностью n секунд типа данных IntervalSecond. Синтаксис
toIntervalSecond(n)
Аргументы
  • n — Количество секунд. Целые числа, их строковые представления, а также числа с плавающей точкой. (U)Int* или Float* или String
Возвращаемое значение Возвращает интервал длительностью n секунд. Interval Примеры Пример использования
Query
WITH
    toDate('2025-06-15') AS date,
    toIntervalSecond(30) AS interval_to_seconds
SELECT date + interval_to_seconds AS result
Response
┌──────────────result─┐
│ 2025-06-15 00:00:30 │
└─────────────────────┘

toIntervalWeek

Добавленный в: v1.1.0 Возвращает интервал в n недель с типом данных IntervalWeek. Синтаксис
toIntervalWeek(n)
Аргументы Возвращаемое значение Возвращает интервал длиной в n недель. Interval Примеры Пример использования
Query
WITH
    toDate('2025-06-15') AS date,
    toIntervalWeek(1) AS interval_to_week
SELECT date + interval_to_week AS result
Response
┌─────result─┐
│ 2025-06-22 │
└────────────┘

toIntervalYear

Добавленный в: v1.1.0 Возвращает интервал длиной в n лет типа данных IntervalYear. Синтаксис
toIntervalYear(n)
Аргументы Возвращаемое значение Возвращает интервал длиной в n лет. Interval Примеры Пример использования
Query
WITH
    toDate('2024-06-15') AS date,
    toIntervalYear(1) AS interval_to_year
SELECT date + interval_to_year AS result
Response
┌─────result─┐
│ 2025-06-15 │
└────────────┘

toLowCardinality

Добавленный в: v18.12.0 Преобразует входной аргумент в версию LowCardinality того же типа данных.
Чтобы преобразовать тип данных LowCardinality в обычный тип данных, используйте функцию CAST. Например: CAST(x AS String).
Синтаксис
toLowCardinality(expr)
Аргументы Возвращаемое значение Возвращает входное значение, преобразованное в тип данных LowCardinality. LowCardinality Примеры Пример использования
Query
SELECT toLowCardinality('1')
Response
┌─toLowCardinality('1')─┐
│ 1                     │
└───────────────────────┘

toString

Добавленный в: v1.1.0 Преобразует значения в строковое представление. Для аргументов DateTime функция может принимать второй аргумент типа String, содержащий имя часового пояса. Синтаксис
toString(value[, timezone])
Аргументы
  • value — Значение для преобразования в строку. Any
  • timezone — Необязательно. Имя часового пояса для преобразования значения DateTime. String
Возвращаемое значение Возвращает строковое представление входного значения. String Примеры Пример использования
Query
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
┌──────────────────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 │
└─────────────────────┴───────────────────┴─────────────────────┘

toStringCutToZero

Добавленный в: v1.1.0 Принимает аргумент типа String или FixedString и возвращает String, содержащую копию исходной строки, обрезанную по первому null-байту. Null-байты (\0) считаются символами окончания строки. Эта функция полезна при обработке строк в стиле C или бинарных данных, где null-байты обозначают конец значимого содержимого. Синтаксис
toStringCutToZero(s)
Аргументы
  • s — обрабатываемое значение типа String или FixedString. String или FixedString
Возвращаемое значение Возвращает значение типа String, содержащее символы до первого null-байта. String Примеры Пример использования
Query
SELECT
    toStringCutToZero('hello'),
    toStringCutToZero('hello\0world')
Response
┌─toStringCutToZero('hello')─┬─toStringCutToZero('hello\\0world')─┐
│ hello                      │ hello                             │
└────────────────────────────┴───────────────────────────────────┘

toTime

Добавленный в: v1.1.0 Преобразует входное значение в тип Time. Поддерживает преобразование из String, FixedString, DateTime или числовых типов, обозначающих количество секунд с полуночи. Синтаксис
toTime(x)
Аргументы Возвращаемое значение Преобразованное значение. Time Примеры Преобразование из String в Time
Query
SELECT toTime('14:30:25')
Response
14:30:25
Преобразование DateTime в тип Time
Query
SELECT toTime(toDateTime('2025-04-15 14:30:25'))
Response
14:30:25
Преобразование целого числа в тип Time
Query
SELECT toTime(52225)
Response
14:30:25

toTime64

Добавленный в: v25.6.0 Преобразует входное значение в тип Time64. Поддерживает преобразование из String, FixedString, DateTime64 или числовых типов, представляющих количество микросекунд, прошедших с полуночи. Обеспечивает микросекундную точность значений времени. Синтаксис
toTime64(x)
Аргументы Возвращаемое значение Возвращает преобразованное входное значение с точностью до микросекунд. Time64(6) Примеры Преобразование String в Time64
Query
SELECT toTime64('14:30:25.123456')
Response
14:30:25.123456
Преобразование DateTime64 в Time64
Query
SELECT toTime64(toDateTime64('2025-04-15 14:30:25.123456', 6))
Response
14:30:25.123456
Преобразование целочисленного значения в Time64
Query
SELECT toTime64(52225123456)
Response
14:30:25.123456

toTime64OrNull

Добавленный в: v25.6.0 Преобразует входное значение в значение типа Time64, но в случае ошибки возвращает NULL. Аналогично toTime64, но при ошибках преобразования возвращает NULL вместо генерации исключения. См. также: Синтаксис
toTime64OrNull(x)
Аргументы
  • x — строковое представление времени с субсекундной точностью. String
Возвращаемое значение При успешном выполнении возвращает значение Time64, в противном случае — NULL. Time64 или NULL Примеры Пример использования
Query
SELECT toTime64OrNull('12:30:45.123'), toTime64OrNull('invalid')
Response
┌─toTime64OrNull('12:30:45.123')─┬─toTime64OrNull('invalid')─┐
│                   12:30:45.123 │                      ᴺᵁᴸᴸ │
└────────────────────────────────┴───────────────────────────┘

toTime64OrZero

Добавленный в: v25.6.0 Преобразует входное значение в значение типа Time64, но в случае ошибки возвращает 00:00:00.000. Аналогично toTime64, но при ошибках преобразования возвращает 00:00:00.000 вместо генерации исключения. Синтаксис
toTime64OrZero(x)
Аргументы
  • x — строковое представление времени с субсекундной точностью. String
Возвращаемое значение Возвращает значение типа Time64 в случае успеха, иначе — 00:00:00.000. Time64 Примеры Пример использования
Query
SELECT toTime64OrZero('12:30:45.123'), toTime64OrZero('invalid')
Response
┌─toTime64OrZero('12:30:45.123')─┬─toTime64OrZero('invalid')─┐
│                   12:30:45.123 │             00:00:00.000 │
└────────────────────────────────┴──────────────────────────┘

toTimeOrNull

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Time, но в случае ошибки возвращает NULL. Аналогично toTime, но при ошибках преобразования возвращает NULL вместо генерации исключения. См. также: Синтаксис
toTimeOrNull(x)
Аргументы
  • x — строковое представление времени. String
Возвращаемое значение Возвращает значение типа Time в случае успеха, в противном случае — NULL. Time или NULL Примеры Пример использования
Query
SELECT toTimeOrNull('12:30:45'), toTimeOrNull('invalid')
Response
┌─toTimeOrNull('12:30:45')─┬─toTimeOrNull('invalid')─┐
│                 12:30:45 │                    ᴺᵁᴸᴸ │
└──────────────────────────┴─────────────────────────┘

toTimeOrZero

Добавленный в: v1.1.0 Преобразует входное значение в значение типа Time, а в случае ошибки возвращает 00:00:00. Как и toTime, при ошибках преобразования возвращает 00:00:00 вместо того, чтобы генерировать исключение. Синтаксис
toTimeOrZero(x)
Аргументы
  • x — Строковое представление времени. String
Возвращаемое значение Возвращает значение типа Time в случае успеха, в противном случае — 00:00:00. Time Примеры Пример использования
Query
SELECT toTimeOrZero('12:30:45'), toTimeOrZero('invalid')
Response
┌─toTimeOrZero('12:30:45')─┬─toTimeOrZero('invalid')─┐
│                 12:30:45 │                00:00:00 │
└──────────────────────────┴─────────────────────────┘

toUInt128

Добавленный в: v1.1.0 Преобразует входное значение в значение типа UInt128. В случае ошибки генерирует исключение. Функция использует округление к нулю, то есть отбрасывает дробную часть числа. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt128('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt128, происходит переполнение или потеря значащих разрядов. Это не считается ошибкой.
См. также: Синтаксис
toUInt128(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
Возвращаемое значение Возвращает 128-битное беззнаковое целое значение. UInt128 Примеры Пример использования
Query
SELECT
    toUInt128(128),
    toUInt128(128.8),
    toUInt128('128')
FORMAT Vertical
Response
Row 1:
──────
toUInt128(128):   128
toUInt128(128.8): 128
toUInt128('128'): 128

toUInt128OrDefault

Добавленный в: v21.11.0 Как и toUInt128, эта функция преобразует входное значение в значение типа UInt128, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, то при ошибке возвращается 0. Синтаксис
toUInt128OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое будет возвращено, если разбор не выполнен. UInt128
Возвращаемое значение Возвращает значение типа UInt128 в случае успеха, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. UInt128 Примеры Успешное преобразование
Query
SELECT toUInt128OrDefault('128', CAST('0', 'UInt128'))
Response
128
Не удалось выполнить преобразование
Query
SELECT toUInt128OrDefault('abc', CAST('0', 'UInt128'))
Response
0

toUInt128OrNull

Добавленный в: v21.6.0 Как и toUInt128, эта функция преобразует входное значение в значение типа UInt128, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращают NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt128OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt128, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой.
См. также: Синтаксис
toUInt128OrNull(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt128, а если преобразование не удалось — NULL. UInt128 или NULL Примеры Пример использования
Query
SELECT
    toUInt128OrNull('128'),
    toUInt128OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toUInt128OrNull('128'): 128
toUInt128OrNull('abc'): \N

toUInt128OrZero

Добавленный в: v1.1.0 Подобно toUInt128, эта функция преобразует входное значение в значение типа UInt128, но в случае ошибки возвращает 0. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращается 0):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt128OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt128, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt128OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt128, а если преобразование не удалось — 0. UInt128 Примеры Пример использования
Query
SELECT
    toUInt128OrZero('128'),
    toUInt128OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toUInt128OrZero('128'): 128
toUInt128OrZero('abc'): 0

toUInt16

Добавленный в: v1.1.0 Преобразует входное значение в значение типа UInt16. В случае ошибки генерирует исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt16('0xc0fe');.
Если входное значение не может быть представлено в границах UInt16, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой. Например: SELECT toUInt16(65536) == 0;.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
См. также: Синтаксис
toUInt16(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
Возвращаемое значение Возвращает 16-битное беззнаковое целое число. UInt16 Примеры Пример использования
Query
SELECT
    toUInt16(16),
    toUInt16(16.16),
    toUInt16('16')
FORMAT Vertical
Response
Строка 1:
──────
toUInt16(16):    16
toUInt16(16.16): 16
toUInt16('16'):  16

toUInt16OrDefault

Добавленный в: v21.11.0 Как и toUInt16, эта функция преобразует входное значение в тип UInt16, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, то в случае ошибки возвращается 0. Синтаксис
toUInt16OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательный параметр. Значение по умолчанию, которое возвращается, если парсинг завершился неудачно. UInt16
Возвращаемое значение Возвращает значение типа UInt16 в случае успеха; в противном случае — переданное значение по умолчанию, а если оно не передано, 0. UInt16 Примеры Успешное преобразование
Query
SELECT toUInt16OrDefault('16', CAST('0', 'UInt16'))
Response
16
Ошибка преобразования
Query
SELECT toUInt16OrDefault('abc', CAST('0', 'UInt16'))
Response
0

toUInt16OrNull

Добавленный в: v1.1.0 Подобно toUInt16, эта функция преобразует входное значение в значение типа UInt16, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt16OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt16, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt16OrNull(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt16; если преобразование не удалось, возвращает NULL. UInt16 или NULL Примеры Пример использования
Query
SELECT
    toUInt16OrNull('16'),
    toUInt16OrNull('abc')
FORMAT Vertical
Response
Row 1:
──────
toUInt16OrNull('16'):  16
toUInt16OrNull('abc'): \N

toUInt16OrZero

Добавленный в: v1.1.0 Как и toUInt16, эта функция преобразует входное значение в значение типа UInt16, но при ошибке возвращает 0. Поддерживаемые аргументы:
  • Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается 0):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt16OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt16, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt16OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt16, либо 0, если преобразование не удалось. UInt16 Примеры Пример использования
Query
SELECT
    toUInt16OrZero('16'),
    toUInt16OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toUInt16OrZero('16'):  16
toUInt16OrZero('abc'): 0

toUInt256

Добавленный в: v1.1.0 Преобразует входное значение в значение типа UInt256. Генерирует исключение в случае ошибки. Функция использует округление к нулю, то есть отбрасывает дробную часть числа. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt256('0xc0fe');.
Если входное значение не может быть представлено в диапазоне UInt256, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой.
См. также: Синтаксис
toUInt256(expr)
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. Выражение
Возвращаемое значение Возвращает 256-битное беззнаковое целое число. UInt256 Примеры Пример использования
Query
SELECT
    toUInt256(256),
    toUInt256(256.256),
    toUInt256('256')
FORMAT Vertical
Response
Строка 1:
──────
toUInt256(256):     256
toUInt256(256.256): 256
toUInt256('256'):   256

toUInt256OrDefault

Добавленный в: v21.11.0 Как и toUInt256, эта функция преобразует входное значение в тип UInt256, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, то в случае ошибки возвращается 0. Синтаксис
toUInt256OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String, (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если не удалось выполнить разбор. UInt256
Возвращаемое значение При успешном выполнении возвращает значение типа UInt256, в противном случае — значение по умолчанию, если оно передано, или 0, если нет. UInt256 Примеры Успешное преобразование
Query
SELECT toUInt256OrDefault('-256', CAST('0', 'UInt256'))
Response
0
Ошибка преобразования
Query
SELECT toUInt256OrDefault('abc', CAST('0', 'UInt256'))
Response
0

toUInt256OrNull

Добавленный в: v20.8.0 Как и toUInt256, эта функция преобразует входное значение в значение типа UInt256, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления значений (U)Int*.
Неподдерживаемые аргументы (возвращают NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt256OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt256, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой.
См. также: Синтаксис
toUInt256OrNull(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt256, а если преобразование не удалось — NULL. UInt256 или NULL Примеры Пример использования
Query
SELECT
    toUInt256OrNull('256'),
    toUInt256OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toUInt256OrNull('256'): 256
toUInt256OrNull('abc'): \N

toUInt256OrZero

Добавленный в: v20.8.0 Как и toUInt256, эта функция преобразует входное значение в значение типа UInt256, но в случае ошибки возвращает 0. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращает 0):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt256OrZero('0xc0fe');.
Если входное значение не может быть представлено в диапазоне UInt256, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt256OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt256, а если преобразование не удалось — 0. UInt256 Примеры Пример использования
Query
SELECT
    toUInt256OrZero('256'),
    toUInt256OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toUInt256OrZero('256'): 256
toUInt256OrZero('abc'): 0

toUInt32

Добавленный в: v1.1.0 Преобразует входное значение в значение типа UInt32. В случае ошибки генерирует исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt32('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt32, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой. Например: SELECT toUInt32(4294967296) == 0;
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
См. также: Синтаксис
toUInt32(expr)
Аргументы
  • expr — выражение, возвращающее число или строковое представление числа. Выражение
Возвращаемое значение Возвращает 32-битное беззнаковое целое значение. UInt32 Примеры Пример использования
Query
SELECT
    toUInt32(32),
    toUInt32(32.32),
    toUInt32('32')
FORMAT Vertical
Response
Строка 1:
──────
toUInt32(32):    32
toUInt32(32.32): 32
toUInt32('32'):  32

toUInt32OrDefault

Добавленный в: v21.11.0 Как и toUInt32, эта функция преобразует входное значение в значение типа UInt32, но в случае ошибки возвращает значение по умолчанию. Если значение default не указано, то в случае ошибки возвращается 0. Синтаксис
toUInt32OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int*, или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если parsing завершается неуспешно. UInt32
Возвращаемое значение При успешном выполнении возвращает значение типа UInt32; в противном случае возвращает значение по умолчанию, если оно было передано, или 0, если нет. UInt32 Примеры Успешное преобразование
Query
SELECT toUInt32OrDefault('32', CAST('0', 'UInt32'))
Response
32
Ошибка преобразования
Query
SELECT toUInt32OrDefault('abc', CAST('0', 'UInt32'))
Response
0

toUInt32OrNull

Добавленный в: v1.1.0 Как и toUInt32, эта функция преобразует входное значение в значение типа UInt32, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt32OrNull('0xc0fe');.
Если входное значение не может быть представлено в диапазоне UInt32, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt32OrNull(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt32; если преобразование не удалось, возвращается NULL. UInt32 или NULL Примеры Пример использования
Query
SELECT
    toUInt32OrNull('32'),
    toUInt32OrNull('abc')
FORMAT Vertical
Response
Row 1:
──────
toUInt32OrNull('32'):  32
toUInt32OrNull('abc'): \N

toUInt32OrZero

Добавленный в: v1.1.0 Как и toUInt32, эта функция преобразует входное значение в значение типа UInt32, но в случае ошибки возвращает 0. Поддерживаемые аргументы:
  • Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращают 0):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt32OrZero('0xc0fe');.
Если входное значение не может быть представлено в диапазоне UInt32, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt32OrZero(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt32, а если преобразование не удалось — 0. UInt32 Примеры Пример использования
Query
SELECT
    toUInt32OrZero('32'),
    toUInt32OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toUInt32OrZero('32'):  32
toUInt32OrZero('abc'): 0

toUInt64

Добавленный в: v1.1.0 Преобразует входное значение в значение типа UInt64. При ошибке генерирует исключение. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые типы:
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt64('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt64, происходит переполнение или выход за нижнюю границу диапазона. Это не считается ошибкой. Например: SELECT toUInt64(18446744073709551616) == 0;
Функция использует округление к нулю, то есть отбрасывает дробные цифры у чисел.
См. также: Синтаксис
toUInt64(expr)
Аргументы
  • expr — Выражение, возвращающее число или его строковое представление. Выражение
Возвращаемое значение Возвращает 64-битное беззнаковое целое число. UInt64 Примеры Пример использования
Query
SELECT
    toUInt64(64),
    toUInt64(64.64),
    toUInt64('64')
FORMAT Vertical
Response
Row 1:
──────
toUInt64(64):    64
toUInt64(64.64): 64
toUInt64('64'):  64

toUInt64OrDefault

Добавленный в: v21.11.0 Подобно toUInt64, эта функция преобразует входное значение в значение типа UInt64, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, то в случае ошибки возвращается 0. Синтаксис
toUInt64OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int* или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если преобразование не удалось. UInt64
Возвращаемое значение Если преобразование выполнено успешно, возвращает значение типа UInt64; в противном случае — переданное значение по умолчанию или 0, если оно не указано. UInt64 Примеры Успешное преобразование
Query
SELECT toUInt64OrDefault('64', CAST('0', 'UInt64'))
Response
64
Не удалось выполнить преобразование
Query
SELECT toUInt64OrDefault('abc', CAST('0', 'UInt64'))
Response
0

toUInt64OrNull

Добавленный в: v1.1.0 Как и toUInt64, эта функция преобразует входное значение в значение типа UInt64, но в случае ошибки возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращают NULL):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt64OrNull('0xc0fe');.
Если входное значение не может быть представлено в пределах диапазона UInt64, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt64OrNull(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt64, а если преобразование не удалось — NULL. UInt64 или NULL Примеры Пример использования
Query
SELECT
    toUInt64OrNull('64'),
    toUInt64OrNull('abc')
FORMAT Vertical
Response
Строка 1:
──────
toUInt64OrNull('64'):  64
toUInt64OrNull('abc'): \N

toUInt64OrZero

Добавленный в: v1.1.0 Как и toUInt64, эта функция преобразует входное значение в значение типа UInt64, но при ошибке возвращает 0. Поддерживаемые аргументы:
  • Строковые представления (U)Int*.
Неподдерживаемые аргументы (возвращается 0):
  • Строковые представления значений Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например: SELECT toUInt64OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt64, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt64OrZero(x)
Аргументы
  • x — Строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt64; если преобразование не удалось — 0. UInt64 Примеры Пример использования
Query
SELECT
    toUInt64OrZero('64'),
    toUInt64OrZero('abc')
FORMAT Vertical
Response
Строка 1:
──────
toUInt64OrZero('64'):  64
toUInt64OrZero('abc'): 0

toUInt8

Добавленный в: v1.1.0 Преобразует входное значение в значение типа UInt8. Генерирует исключение в случае ошибки. Поддерживаемые аргументы:
  • Значения или строковые представления типа (U)Int*.
  • Значения типа Float*.
Неподдерживаемые аргументы:
  • Строковые представления значений типа Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt8('0xc0fe');.
Если входное значение не может быть представлено в диапазоне UInt8, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой. Например: SELECT toUInt8(256) == 0;.
Функция использует округление к нулю, то есть отбрасывает дробную часть числа.
См. также: Синтаксис
toUInt8(expr)
Аргументы
  • expr — выражение, возвращающее число или строковое представление числа. Выражение
Возвращаемое значение Возвращает 8-битное беззнаковое целое число. UInt8 Примеры Пример использования
Query
SELECT
    toUInt8(8),
    toUInt8(8.8),
    toUInt8('8')
FORMAT Vertical
Response
Строка 1:
──────
toUInt8(8):   8
toUInt8(8.8): 8
toUInt8('8'): 8

toUInt8OrDefault

Добавленный в: v21.11.0 Как и toUInt8, эта функция преобразует входное значение в значение типа UInt8, но в случае ошибки возвращает значение по умолчанию. Если значение default не передано, в случае ошибки возвращается 0. Синтаксис
toUInt8OrDefault(expr[, default])
Аргументы
  • expr — Выражение, возвращающее число или строковое представление числа. String или (U)Int*, или Float*
  • default — Необязательно. Значение по умолчанию, которое возвращается, если разбор не удался. UInt8
Возвращаемое значение Возвращает значение типа UInt8 в случае успеха; в противном случае возвращает значение по умолчанию, если оно передано, или 0, если нет. UInt8 Примеры Успешное преобразование
Query
SELECT toUInt8OrDefault('8', CAST('0', 'UInt8'))
Response
8
Ошибка преобразования
Query
SELECT toUInt8OrDefault('abc', CAST('0', 'UInt8'))
Response
0

toUInt8OrNull

Добавленный в: v1.1.0 Как и toUInt8, эта функция преобразует входное значение в значение типа UInt8, но при ошибке возвращает NULL. Поддерживаемые аргументы:
  • Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается NULL):
  • Строковые представления обычных значений типа Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt8OrNull('0xc0fe');.
Если входное значение не может быть представлено в диапазоне UInt8, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt8OrNull(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt8; если преобразование не удалось, возвращается NULL. UInt8 или NULL Примеры Пример использования
Query
SELECT
    toUInt8OrNull('42'),
    toUInt8OrNull('abc')
FORMAT Vertical
Response
Row 1:
──────
toUInt8OrNull('42'):  42
toUInt8OrNull('abc'): \N

toUInt8OrZero

Добавленный в: v1.1.0 Как и toUInt8, эта функция преобразует входное значение в значение типа UInt8, но в случае ошибки возвращает 0. Поддерживаемые аргументы:
  • Строковые представления (U)Int8/16/32/128/256.
Неподдерживаемые аргументы (возвращается 0):
  • Строковые представления обычных значений типа Float*, включая NaN и Inf.
  • Строковые представления двоичных и шестнадцатеричных значений, например SELECT toUInt8OrZero('0xc0fe');.
Если входное значение не может быть представлено в пределах UInt8, происходит переполнение или выход за нижнюю границу диапазона результата. Это не считается ошибкой.
См. также: Синтаксис
toUInt8OrZero(x)
Аргументы
  • x — строковое представление числа. String
Возвращаемое значение Возвращает значение типа UInt8; если преобразование не удалось, возвращает 0. UInt8 Примеры Пример использования
Query
SELECT
    toUInt8OrZero('-8'),
    toUInt8OrZero('abc')
FORMAT Vertical
Response
Row 1:
──────
toUInt8OrZero('-8'):  0
toUInt8OrZero('abc'): 0

toUUID

Добавленный в: v1.1.0 Преобразует значение типа String в значение типа UUID. Синтаксис
toUUID(string)
Аргументы Возвращаемое значение Возвращает UUID, полученный из строкового представления UUID. UUID Примеры Пример использования
Query
SELECT toUUID('61f0c404-5cb3-11e7-907b-a6006ad3dba0') AS uuid
Response
┌─────────────────────────────────uuid─┐
│ 61f0c404-5cb3-11e7-907b-a6006ad3dba0 │
└──────────────────────────────────────┘

toUUIDOrZero

Добавленный в: v20.12.0 Преобразует входное значение в значение типа UUID, но в случае ошибки возвращает нулевой UUID. Как toUUID, но при ошибках преобразования вместо генерации исключения возвращает нулевой UUID (00000000-0000-0000-0000-000000000000). Поддерживаемые аргументы:
  • Строковые представления UUID в стандартном формате (8-4-4-4-12 шестнадцатеричных цифр).
  • Строковые представления UUID без дефисов (32 шестнадцатеричные цифры).
Неподдерживаемые аргументы (возвращается нулевой UUID):
  • Недопустимые строковые форматы.
  • Типы, отличные от строковых.
Синтаксис
toUUIDOrZero(x)
Аргументы
  • x — строковое представление UUID. String
Возвращаемое значение Возвращает значение UUID в случае успеха, в противном случае — нулевой UUID (00000000-0000-0000-0000-000000000000). UUID Примеры Пример использования
Query
SELECT
    toUUIDOrZero('550e8400-e29b-41d4-a716-446655440000') AS valid_uuid,
    toUUIDOrZero('invalid-uuid') AS invalid_uuid
Response
┌─valid_uuid───────────────────────────┬─invalid_uuid─────────────────────────┐
│ 550e8400-e29b-41d4-a716-446655440000 │ 00000000-0000-0000-0000-000000000000 │
└──────────────────────────────────────┴──────────────────────────────────────┘

toUnixTimestamp64Micro

Добавленный в: v20.5.0 Преобразует DateTime64 в значение Int64 с фиксированной точностью в микросекундах. Входное значение соответствующим образом масштабируется в большую или меньшую сторону в зависимости от его точности.
Выходное значение задаётся относительно UTC, а не относительно часового пояса входного значения.
Синтаксис
toUnixTimestamp64Micro(value)
Аргументы
  • value — значение типа DateTime64 с любой точностью. DateTime64
Возвращаемое значение Возвращает Unix-временную метку в микросекундах. Int64 Примеры Пример использования
Query
WITH toDateTime64('2025-02-13 23:31:31.011123', 6, 'UTC') AS dt64
SELECT toUnixTimestamp64Micro(dt64);
Response
┌─toUnixTimestamp64Micro(dt64)─┐
│               1739489491011123 │
└────────────────────────────────┘

toUnixTimestamp64Milli

Добавленный в: v20.5.0 Преобразует DateTime64 в значение Int64 с фиксированной точностью в миллисекундах. Входное значение соответствующим образом масштабируется в зависимости от его точности.
Выходное значение задается относительно UTC, а не часового пояса входного значения.
Синтаксис
toUnixTimestamp64Milli(value)
Аргументы
  • value — значение типа DateTime64 с любой точностью. DateTime64
Возвращаемое значение Возвращает Unix-временную метку в миллисекундах. Int64 Примеры Пример использования
Query
WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64
SELECT toUnixTimestamp64Milli(dt64);
Response
┌─toUnixTimestamp64Milli(dt64)─┐
│                1739489491011 │
└──────────────────────────────┘

toUnixTimestamp64Nano

Добавленный в: v20.5.0 Преобразует DateTime64 в значение Int64 с фиксированной точностью до наносекунд. Входное значение соответствующим образом масштабируется вверх или вниз в зависимости от его точности.
Выходное значение рассчитывается относительно UTC, а не часового пояса входного значения.
Синтаксис
toUnixTimestamp64Nano(value)
Аргументы
  • value — значение типа DateTime64 с любой точностью. DateTime64
Возвращаемое значение Возвращает Unix-временную метку в наносекундах. Int64 Примеры Пример использования
Query
WITH toDateTime64('2025-02-13 23:31:31.011123456', 9, 'UTC') AS dt64
SELECT toUnixTimestamp64Nano(dt64);
Response
┌─toUnixTimestamp64Nano(dt64)────┐
│            1739489491011123456 │
└────────────────────────────────┘

toUnixTimestamp64Second

Добавленный в: v24.12.0 Преобразует DateTime64 в значение Int64 с фиксированной точностью до секунд. Входное значение соответствующим образом масштабируется в большую или меньшую сторону в зависимости от его точности.
Выходное значение задаётся относительно UTC, а не часового пояса входного значения.
Синтаксис
toUnixTimestamp64Second(value)
Аргументы
  • value — значение типа DateTime64 с любой точностью. DateTime64
Возвращаемое значение Возвращает Unix-временную метку в секундах. Int64 Примеры Пример использования
Query
WITH toDateTime64('2025-02-13 23:31:31.011', 3, 'UTC') AS dt64
SELECT toUnixTimestamp64Second(dt64);
Response
┌─toUnixTimestamp64Second(dt64)─┐
│                    1739489491 │
└───────────────────────────────┘
Последнее изменение 10 июня 2026 г.