Pular para o conteúdo principal

Funções para trabalhar com UUIDs

Geração de UUIDv7

O UUID gerado contém um timestamp de 48 bits em milissegundos Unix, seguido pela versão “7” (4 bits), um contador (42 bits) para distinguir UUIDs dentro de um mesmo milissegundo (incluindo um campo de variante “2”, 2 bits) e um campo aleatório (32 bits). Para um determinado timestamp (unix_ts_ms), o contador começa em um valor aleatório e é incrementado em 1 para cada novo UUID até que o timestamp mude. Em caso de overflow do contador, o campo de timestamp é incrementado em 1 e o contador é redefinido para um novo valor inicial aleatório. As funções de geração de UUID garantem que o campo do contador dentro de um timestamp seja incrementado monotonicamente em todas as invocações da função, em threads e queries executadas concorrentemente.

Geração de Snowflake ID

O Snowflake ID gerado contém o timestamp Unix atual em milissegundos (41 + 1 bits mais significativos zerados), seguido por um ID de máquina (10 bits) e um contador (12 bits) para diferenciar IDs dentro de um mesmo milissegundo. Para um determinado timestamp (unix_ts_ms), o contador começa em 0 e é incrementado em 1 para cada novo Snowflake ID até que o timestamp mude. Se o contador sofrer overflow, o campo de timestamp será incrementado em 1 e o contador será redefinido para 0.
Os Snowflake IDs gerados são baseados na epoch Unix 1970-01-01. Embora não exista um padrão ou recomendação para a epoch de Snowflake IDs, implementações em outros sistemas podem usar uma epoch diferente, por exemplo, Twitter/X (2010-11-04) ou Mastodon (2015-01-01).

UUIDNumToString

Introduzido em: v1.1.0 Recebe uma representação binária de um UUID, com o formato opcionalmente especificado por variant (Big-endian por padrão), e retorna uma string de 36 caracteres em formato de texto. Sintaxe
Argumentos
  • binary — Representação binária de um UUID. FixedString(16)
  • variant — Variante conforme especificado na RFC4122. 1 = Big-endian (padrão), 2 = Microsoft. (U)Int*
Valor retornado Retorna o UUID como uma string. String Exemplos Exemplo de uso
Query
Response
Variante da Microsoft
Query
Response

UUIDStringToNum

Introduzido em: v1.1.0 Aceita uma string contendo 36 caracteres no formato xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx e retorna uma FixedString(16) como sua representação binária, com o formato opcionalmente especificado por variant (Big-endian por padrão). Sintaxe
Argumentos
  • string — Uma string ou string de tamanho fixo com 36 caracteres) String ou FixedString(36)
  • variant — Variante conforme especificado pela RFC4122. 1 = Big-endian (padrão), 2 = Microsoft. (U)Int*
Valor retornado Retorna a representação binária de string. FixedString(16) Exemplos Exemplo de uso
Query
Response
variante da Microsoft
Query
Response

UUIDToNum

Introduzido em: v24.5.0 Aceita um UUID e retorna sua representação binária como FixedString(16), com o formato opcionalmente especificado por variant (Big-endian por padrão). Esta função substitui chamadas a duas funções separadas, UUIDStringToNum(toString(uuid)), portanto não é necessária nenhuma conversão intermediária de UUID para string para extrair bytes de um UUID. Sintaxe
Argumentos Valor retornado Retorna uma representação binária do UUID. FixedString(16) Exemplos Exemplo de uso
Query
Response
variante da Microsoft
Query
Response

UUIDv7ToDateTime

Introduzido em: v24.5.0 Retorna o componente de timestamp de um UUID versão 7. Sintaxe
Argumentos Valor retornado Retorna um timestamp com precisão de milissegundos. Se o UUID não for um UUID válido da versão 7, retorna 1970-01-01 00:00:00.000. DateTime64(3) Exemplos Exemplo de uso
Query
Response
Com fuso horário
Query
Response

dateTime64ToSnowflake

Introduzido em: v21.10.0
Esta função está obsoleta e só pode ser usada se a configuração allow_deprecated_snowflake_conversion_functions estiver habilitada. A função será removida futuramente.Use a função dateTime64ToSnowflakeID em vez dela.
Converte um DateTime64 no primeiro Snowflake ID correspondente ao instante informado. Sintaxe
Argumentos Valor retornado Retorna o valor de entrada convertido para o primeiro Snowflake ID naquele momento. Int64 Exemplos Exemplo de uso
Query
Response

dateTime64ToSnowflakeID

Introduzido em: v24.6.0 Converte um valor DateTime64 no primeiro Snowflake ID no instante informado. Sintaxe
Argumentos
  • value — Data e hora. DateTime64
  • epoch — epoch do Snowflake ID em milissegundos desde 1970-01-01. O padrão é 0 (1970-01-01). Para o epoch do Twitter/X (2015-01-01), forneça 1288834974657. UInt*
Valor retornado Valor de entrada convertido para UInt64 Exemplos simples
Query
Response

dateTimeToSnowflake

Introduzido em: v21.10.0
Esta função está obsoleta e só pode ser usada se a configuração allow_deprecated_snowflake_conversion_functions estiver habilitada. A função será removida em algum momento no futuro.Use a função dateTimeToSnowflakeID em vez dela.
Converte um valor DateTime no primeiro Snowflake ID no momento especificado. Sintaxe
Argumentos Valor retornado Retorna o valor de entrada como o primeiro Snowflake ID correspondente àquele momento. Int64 Exemplos Exemplo de uso
Query
Response

dateTimeToSnowflakeID

Introduzido na versão: v24.6.0 Converte um valor DateTime no primeiro Snowflake ID para o momento especificado. Sintaxe
Argumentos
  • value — Data e hora. DateTime
  • epoch — epoch do Snowflake ID em milissegundos a partir de 1970-01-01. O padrão é 0 (1970-01-01). Para o epoch do Twitter/X (2015-01-01), forneça 1288834974657. UInt*
Valor retornado Valor de entrada convertido em UInt64 Exemplos simples
Query
Response

dateTimeToUUIDv7

Introduzido em: v25.8.0 Converte um valor DateTime em um UUIDv7 no instante especificado. Consulte a seção “Geração de UUIDv7” para obter detalhes sobre a estrutura do UUID, o gerenciamento do contador e as garantias de concorrência.
Em setembro de 2025, os UUIDs versão 7 ainda estão em fase de rascunho, e seu layout pode mudar no futuro.
Sintaxe
Argumentos Valor retornado Retorna um UUIDv7. UUID Exemplos Exemplo de uso
Query
Response
vários UUIDs para o mesmo timestamp
Query
Response

generateSnowflakeID

Introduzido em: v24.6.0 Gera um Snowflake ID. A função generateSnowflakeID garante que o campo contador em um timestamp seja incrementado monotonicamente em todas as invocações da função, mesmo em threads e consultas executadas concorrentemente. Consulte a seção “geração de Snowflake ID” para obter detalhes de implementação. Sintaxe
Argumentos
  • expr — Uma expressão arbitrária usada para contornar a eliminação de subexpressões comuns caso a função seja chamada várias vezes em uma consulta. O valor da expressão não afeta o Snowflake ID retornado. Opcional. - machine_id — Um ID de máquina; os 10 bits menos significativos são usados. Int64. Opcional.
Valor retornado Retorna o Snowflake ID. UInt64 Exemplos Exemplo de uso
Query
Response
Vários IDs Snowflake gerados por linha
Query
Response
Com uma expressão e um ID de máquina
Query
Response

generateUUIDv4

Introduzido em: v1.1.0 Gera um UUID da versão 4. Sintaxe
Argumentos
  • expr — Opcional. Uma expressão arbitrária usada para contornar a eliminação de subexpressões comuns caso a função seja chamada várias vezes em uma consulta. O valor da expressão não afeta o UUID retornado.
Valor retornado Retorna um UUIDv4. UUID Exemplos Exemplo de uso
Query
Response
Eliminação de subexpressões comuns
Query
Response

generateUUIDv7

Introduzido em: v24.5.0 Gera um UUID versão 7. Consulte a seção “geração de UUIDv7” para ver detalhes sobre a estrutura do UUID, o gerenciamento do contador e as garantias de concorrência.
Em setembro de 2025, os UUIDs versão 7 ainda estão em status de rascunho, e seu layout poderá mudar no futuro.
Sintaxe
Argumentos
  • expr — Opcional. Uma expressão arbitrária usada para evitar a eliminação de subexpressões comuns se a função for chamada várias vezes em uma consulta. O valor da expressão não tem efeito no UUID retornado. Any
Valor retornado Retorna um UUIDv7. UUID Exemplos Exemplo de uso
Query
Response
Eliminação de subexpressões comuns
Query
Response

snowflakeIDToDateTime

Introduzido em: v24.6.0 Retorna o componente de timestamp de um Snowflake ID como um valor do tipo DateTime. Sintaxe
Argumentos
  • value — Snowflake ID. UInt64
  • epoch — Opcional. Epoch do Snowflake ID em milissegundos desde 1970-01-01. O padrão é 0 (1970-01-01). Para a epoch do Twitter/X (2015-01-01), informe 1288834974657. UInt*
  • time_zone — Opcional. Fuso horário. A função interpreta time_string de acordo com o fuso horário. String
Valor retornado Retorna o componente de timestamp de value. DateTime Exemplos Exemplo de uso
Query
Response

snowflakeIDToDateTime64

Introduzido em: v24.6.0 Retorna o componente de timestamp de um Snowflake ID como valor do tipo DateTime64. Sintaxe
Argumentos
  • value — Snowflake ID. UInt64
  • epoch — Opcional. Epoch do Snowflake ID em milissegundos desde 1970-01-01. O padrão é 0 (1970-01-01). Para a epoch do Twitter/X (2015-01-01), informe 1288834974657. UInt*
  • time_zone — Opcional. Timezone. A função interpreta time_string de acordo com o fuso horário. String
Valor retornado Retorna o componente de timestamp de value como um DateTime64 com escala = 3, ou seja, precisão de milissegundos. DateTime64 Exemplos Exemplo de uso
Query
Response

snowflakeToDateTime

Introduzido em: v21.10.0
Esta função foi descontinuada e só pode ser usada se a configuração allow_deprecated_snowflake_conversion_functions estiver habilitada. A função será removida futuramente.Use a função snowflakeIDToDateTime.
Extrai o componente de timestamp de um Snowflake ID no formato DateTime. Sintaxe
Argumentos
  • value — Snowflake ID. Int64
  • time_zone — Opcional. Fuso horário. A função interpreta time_string de acordo com o fuso horário. String
Valor retornado Retorna o timestamp de value. DateTime Exemplos Exemplo de uso
Query
Response

snowflakeToDateTime64

Introduzido em: v21.10.0
Esta função está obsoleta e só pode ser usada se a configuração allow_deprecated_snowflake_conversion_functions estiver habilitada. A função será removida futuramente.Use a função snowflakeIDToDateTime64.
Extrai o componente de timestamp de um Snowflake ID no formato DateTime64. Sintaxe
Argumentos
  • value — Snowflake ID. Int64
  • time_zone — Opcional. Fuso horário. A função interpreta time_string de acordo com o fuso horário. String
Valor retornado Retorna o componente de timestamp de value. DateTime64(3) Exemplos Exemplo de uso
Query
Response

toUUIDOrDefault

Introduzido em: v21.1.0 Converte um valor String para o tipo UUID. Se a conversão falhar, retorna um valor UUID padrão em vez de gerar um erro. Esta função tenta interpretar uma string de 36 caracteres no formato UUID padrão (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). Se a string não puder ser convertida em um UUID válido, a função retornará o valor UUID padrão fornecido. Sintaxe
Argumentos
  • string — String de 36 caracteres ou FixedString(36) a ser convertida em UUID. - default — valor UUID a ser retornado se o primeiro argumento não puder ser convertido para o tipo UUID.
Valor retornado Retorna o UUID convertido em caso de sucesso ou o UUID padrão se a conversão falhar. UUID Exemplos A conversão bem-sucedida retorna o UUID interpretado
Query
Response
Em caso de falha na conversão, retorna o UUID padrão
Query
Response

toUUIDOrNull

Introduzido em: v20.12.0 Converte um valor de entrada em um valor do tipo UUID, mas retorna NULL em caso de erro. Como toUUID, mas retorna NULL em vez de lançar uma exceção em erros de conversão. Argumentos compatíveis:
  • Representações de UUID em string no formato padrão (8-4-4-4-12 dígitos hexadecimais).
  • Representações de UUID em string sem hífens (32 dígitos hexadecimais).
Argumentos não compatíveis (retornam NULL):
  • Formatos de string inválidos.
  • Tipos não string.
  • UUIDs malformados.
Sintaxe
Argumentos
  • x — Uma representação textual de um UUID. String
Valor retornado Retorna um valor UUID em caso de sucesso; caso contrário, NULL. UUID ou NULL Exemplos Exemplos de uso
Query
Response
Última modificação em 3 de julho de 2026