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

Функции для работы с UUID

Генерация UUIDv7

Сгенерированный UUID содержит 48-битную временную метку в миллисекундах Unix, за которой следуют версия “7” (4 бита), счётчик (42 бита) для различения UUID в пределах одной миллисекунды (включая поле варианта “2”, 2 бита) и случайное поле (32 бита). Для любой заданной временной метки (unix_ts_ms) счётчик начинается со случайного значения и увеличивается на 1 для каждого нового UUID, пока временная метка не изменится. В случае переполнения счётчика поле временной метки увеличивается на 1, а счётчик сбрасывается до нового случайного начального значения. Функции генерации UUID гарантируют, что поле счётчика в пределах одной временной метки монотонно увеличивается при всех вызовах функций в параллельно выполняемых потоках и запросах.

Генерация Snowflake ID

Сгенерированный Snowflake ID содержит текущую Unix-временную метку в миллисекундах (41 бит + 1 старший нулевой бит), за которой следуют идентификатор машины (10 бит) и счётчик (12 бит), позволяющий различать идентификаторы в пределах одной миллисекунды. Для любой заданной временной метки (unix_ts_ms) счётчик начинается с 0 и увеличивается на 1 для каждого нового Snowflake ID, пока временная метка не изменится. В случае переполнения счётчика поле временной метки увеличивается на 1, а счётчик сбрасывается в 0.
Сгенерированные Snowflake ID отсчитываются от эпохи UNIX 1970-01-01. Хотя для эпохи Snowflake ID не существует ни стандарта, ни рекомендаций, реализации в других системах могут использовать другую эпоху, например Twitter/X (2010-11-04) или Mastodon (2015-01-01).

UUIDNumToString

Добавленный в: v1.1.0 Принимает UUID в двоичном представлении, при необходимости с указанием формата через variant (по умолчанию — Big-endian), и возвращает строку из 36 символов в текстовом формате. Синтаксис
Аргументы
  • binary — Двоичное представление UUID. FixedString(16)
  • variant — Вариант в соответствии с RFC4122. 1 = Big-endian (по умолчанию), 2 = Microsoft. (U)Int*
Возвращаемое значение Возвращает UUID в виде строки. String Примеры Пример использования
Query
Response
Вариант Microsoft
Query
Response

UUIDStringToNum

Добавленный в: v1.1.0 Принимает строку из 36 символов в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx и возвращает FixedString(16) с её двоичным представлением; при необходимости формат можно указать с помощью variant (по умолчанию — Big-endian). Синтаксис
Аргументы
  • string — Строка или строка фиксированной длины из 36 символов String или FixedString(36)
  • variant — Вариант согласно RFC4122. 1 = Big-endian (по умолчанию), 2 = Microsoft. (U)Int*
Возвращаемое значение Возвращает двоичное представление string. FixedString(16) Примеры Пример использования
Query
Response
Вариант Microsoft
Query
Response

UUIDToNum

Добавленный в: v24.5.0 Принимает UUID и возвращает его двоичное представление в виде FixedString(16); при необходимости формат можно задать через variant (по умолчанию — Big-endian). Эта функция заменяет вызов двух отдельных функций UUIDStringToNum(toString(uuid)), поэтому для извлечения байтов из UUID не требуется промежуточное преобразование UUID в строку. Синтаксис
Аргументы
  • uuid — UUID. String или FixedString
  • variant — Variant, как указано в RFC4122. 1 = Big-endian (по умолчанию), 2 = Microsoft. (U)Int*
Возвращаемое значение Возвращает двоичное представление UUID. FixedString(16) Примеры Пример использования
Query
Response
Вариант Microsoft
Query
Response

UUIDv7ToDateTime

Добавленный в: v24.5.0 Возвращает компонент временной метки из UUID версии 7. Синтаксис
Аргументы Возвращаемое значение Возвращает временную метку с точностью до миллисекунд. Если UUID не является корректным UUID версии 7, возвращает 1970-01-01 00:00:00.000. DateTime64(3) Примеры Пример использования
Query
Response
С указанием часового пояса
Query
Response

dateTime64ToSnowflake

Добавленный в: v21.10.0
Эта функция устарела и может использоваться только при включенной настройке allow_deprecated_snowflake_conversion_functions. В будущем функция будет удалена.Вместо нее используйте функцию dateTime64ToSnowflakeID.
Преобразует DateTime64 в первый Snowflake ID для указанного момента времени. Синтаксис
Аргументы Возвращаемое значение Возвращает входное значение, преобразованное в первый Snowflake ID для этого момента времени. Int64 Примеры Пример использования
Query
Response

dateTime64ToSnowflakeID

Добавленный в: v24.6.0 Преобразует значение DateTime64 в первый Snowflake ID, соответствующий заданному моменту времени. Синтаксис
Аргументы
  • value — Дата и время. DateTime64
  • epoch — Эпоха для Snowflake ID в миллисекундах с 1970-01-01. По умолчанию — 0 (1970-01-01). Для эпохи Twitter/X (2015-01-01) укажите 1288834974657. UInt*
Возвращаемое значение Входное значение, преобразованное в UInt64 Примеры простой
Query
Response

dateTimeToSnowflake

Добавленный в: v21.10.0
Эта функция устарела и может использоваться только при включенном параметре allow_deprecated_snowflake_conversion_functions. В будущем функция будет удалена.Вместо нее используйте функцию dateTimeToSnowflakeID.
Преобразует значение DateTime в первый Snowflake ID для указанного момента времени. Синтаксис
Аргументы
  • value — Дата и время. DateTime
Возвращаемое значение Возвращает входное значение в виде первого Snowflake ID для данного момента времени. Int64 Примеры Пример использования
Query
Response

dateTimeToSnowflakeID

Добавленный в: v24.6.0 Преобразует значение DateTime в первый Snowflake ID для заданного момента времени. Синтаксис
Аргументы
  • value — Дата и время. DateTime
  • epoch — эпоха Snowflake ID в миллисекундах с 1970-01-01. По умолчанию — 0 (1970-01-01). Для эпохи Twitter/X (2015-01-01) укажите 1288834974657. UInt*
Возвращаемое значение Входное значение, преобразованное в UInt64 Примеры простой
Query
Response

dateTimeToUUIDv7

Добавленный в: v25.8.0 Преобразует значение DateTime в UUIDv7 для указанного момента времени. Подробные сведения о структуре UUID, управлении счётчиком и гарантиях параллелизма см. в разделе “Генерация UUIDv7”.
По состоянию на сентябрь 2025 года UUID версии 7 имеют статус черновика, и их структура может измениться в будущем.
Синтаксис
Аргументы
  • value — Дата и время. DateTime
Возвращаемое значение Возвращает UUIDv7. UUID Примеры Пример использования
Query
Response
несколько UUID для одной и той же временной метки
Query
Response

generateSnowflakeID

Добавленный в: v24.6.0 Генерирует Snowflake ID. Функция generateSnowflakeID гарантирует, что значение поля счётчика в пределах одной временной метки монотонно увеличивается при всех вызовах функции в параллельно выполняющихся потоках и запросах. Подробности реализации см. в разделе “Генерация Snowflake ID”. Синтаксис
Аргументы
  • expr — Произвольное выражение, используемое для обхода устранения общих подвыражений, если функция вызывается в запросе несколько раз. Значение выражения не влияет на возвращаемый Snowflake ID. Необязательно. - machine_id — Идентификатор машины; используются младшие 10 бит. Int64. Необязательно.
Возвращаемое значение Возвращает Snowflake ID. UInt64 Примеры Пример использования
Query
Response
Генерация нескольких Snowflake ID для каждой строки
Query
Response
С выражением и идентификатором машины
Query
Response

generateUUIDv4

Добавленный в: v1.1.0 Генерирует UUID версии 4 UUID. Синтаксис
Аргументы
  • expr — Необязательный. Произвольное выражение, используемое для обхода устранения общих подвыражений, если функция вызывается в запросе несколько раз. Значение выражения не влияет на возвращаемый UUID.
Возвращаемое значение Возвращает UUIDv4. UUID Примеры Пример использования
Query
Response
Устранение общих подвыражений
Query
Response

generateUUIDv7

Добавленный в: v24.5.0 Генерирует UUID версии 7 типа UUID. Подробные сведения о структуре UUID, управлении счётчиком и гарантиях параллелизма см. в разделе “Генерация UUIDv7”.
По состоянию на сентябрь 2025 года UUID версии 7 имеют статус черновика, и их структура в будущем может измениться.
Синтаксис
Аргументы
  • expr — Необязательный. Произвольное выражение, используемое для отключения устранения общих подвыражений, если функция вызывается в запросе несколько раз. Значение выражения не влияет на возвращаемый UUID. Any
Возвращаемое значение Возвращает UUIDv7. UUID Примеры Пример использования
Query
Response
Устранение общих подвыражений
Query
Response

snowflakeIDToDateTime

Добавленный в: v24.6.0 Возвращает компонент временной метки Snowflake ID в виде значения типа DateTime. Синтаксис
Аргументы
  • value — Snowflake ID. UInt64
  • epoch — Необязательно. Эпоха Snowflake ID в миллисекундах, отсчитываемых с 1970-01-01. Значение по умолчанию — 0 (1970-01-01). Для эпохи Twitter/X (2015-01-01) укажите 1288834974657. UInt*
  • time_zone — Необязательно. Часовой пояс. Функция разбирает time_string с учетом часового пояса. String
Возвращаемое значение Возвращает компонент временной метки значения value. DateTime Примеры Пример использования
Query
Response

snowflakeIDToDateTime64

Добавленный в: v24.6.0 Возвращает компонент временной метки Snowflake ID в виде значения типа DateTime64. Синтаксис
Аргументы
  • value — Snowflake ID. UInt64
  • epoch — Необязательно. Эпоха Snowflake ID в миллисекундах с 1970-01-01. По умолчанию — 0 (1970-01-01). Для эпохи Twitter/X (2015-01-01) укажите 1288834974657. UInt*
  • time_zone — Необязательно. Часовой пояс. Функция интерпретирует time_string в соответствии с часовым поясом. String
Возвращаемое значение Возвращает компонент временной метки из value в виде DateTime64 с scale = 3, то есть с точностью до миллисекунд. DateTime64 Примеры Пример использования
Query
Response

snowflakeToDateTime

Добавленный в: v21.10.0
Эта функция устарела и может использоваться только при включенной настройке allow_deprecated_snowflake_conversion_functions. В будущем функция будет удалена.Вместо нее используйте функцию snowflakeIDToDateTime.
Извлекает компонент временной метки из Snowflake ID в формате DateTime. Синтаксис
Аргументы
  • value — Snowflake ID. Int64
  • time_zone — Необязательно. Часовой пояс. Функция разбирает time_string с учетом часового пояса. String
Возвращаемое значение Возвращает компонент временной метки значения value. DateTime Примеры Пример использования
Query
Response

snowflakeToDateTime64

Добавленный в: v21.10.0
Эта функция устарела и может использоваться только при включенной настройке allow_deprecated_snowflake_conversion_functions. В будущем функция будет удалена.Вместо нее используйте функцию snowflakeIDToDateTime64.
Извлекает компонент временной метки из Snowflake ID в формате DateTime64. Синтаксис
Аргументы
  • value — Snowflake ID. Int64
  • time_zone — Необязательно. Часовой пояс. Функция разбирает time_string с учётом часового пояса. String
Возвращаемое значение Возвращает компонент временной метки значения value. DateTime64(3) Примеры Пример использования
Query
Response

toUUIDOrDefault

Добавленный в: v21.1.0 Преобразует значение типа String в тип UUID. Если преобразование не удаётся, вместо генерации ошибки возвращает UUID по умолчанию. Эта функция пытается разобрать строку из 36 символов в стандартном формате UUID (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). Если строку не удаётся преобразовать в корректный UUID, функция возвращает указанное значение UUID по умолчанию. Синтаксис
Аргументы
  • string — строка из 36 символов или FixedString(36), которую нужно преобразовать в UUID. - default — значение UUID, которое возвращается, если первый аргумент не удаётся преобразовать в тип UUID.
Возвращаемое значение Возвращает преобразованный UUID в случае успеха или UUID по умолчанию, если преобразование не удалось. UUID Примеры При успешном преобразовании возвращается разобранный UUID
Query
Response
В случае неудачного преобразования возвращается UUID по умолчанию
Query
Response

toUUIDOrNull

Добавленный в: v20.12.0 Преобразует входное значение в значение типа UUID, но в случае ошибки возвращает NULL. Аналогична toUUID, но при ошибках преобразования возвращает NULL вместо того, чтобы генерировать исключение. Поддерживаемые аргументы:
  • Строковые представления UUID в стандартном формате (8-4-4-4-12 шестнадцатеричных цифр).
  • Строковые представления UUID без дефисов (32 шестнадцатеричные цифры).
Неподдерживаемые аргументы (возвращают NULL):
  • Недопустимые строковые форматы.
  • Типы, отличные от строковых.
  • Некорректные UUID.
Синтаксис
Аргументы
  • x — Строковое представление UUID. String
Возвращаемое значение Возвращает UUID при успешном выполнении, в противном случае — NULL. UUID или NULL Примеры Примеры использования
Query
Response
Последнее изменение 3 июля 2026 г.