> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentación de las funciones para trabajar con UUIDs

# Funciones para trabajar con UUIDs

export const DeprecatedBadge = () => {
  return <div className="deprecatedBadge">
            <div className="deprecatedIcon">
            <svg width="14" height="10" viewBox="0 0 14 10" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M13 0H1C0.734784 0 0.48043 0.105357 0.292893 0.292893C0.105357 0.48043 0 0.734784 0 1V2.5C0 2.76522 0.105357 3.01957 0.292893 3.20711C0.48043 3.39464 0.734784 3.5 1 3.5V9C1 9.26522 1.10536 9.51957 1.29289 9.70711C1.48043 9.89464 1.73478 10 2 10H12C12.2652 10 12.5196 9.89464 12.7071 9.70711C12.8946 9.51957 13 9.26522 13 9V3.5C13.2652 3.5 13.5196 3.39464 13.7071 3.20711C13.8946 3.01957 14 2.76522 14 2.5V1C14 0.734784 13.8946 0.48043 13.7071 0.292893C13.5196 0.105357 13.2652 0 13 0ZM12 9H2V3.5H12V9ZM13 2.5H1V1H13V2.5ZM5 5.5C5 5.36739 5.05268 5.24021 5.14645 5.14645C5.24021 5.05268 5.36739 5 5.5 5H8.5C8.63261 5 8.75979 5.05268 8.85355 5.14645C8.94732 5.24021 9 5.36739 9 5.5C9 5.63261 8.94732 5.75979 8.85355 5.85355C8.75979 5.94732 8.63261 6 8.5 6H5.5C5.36739 6 5.24021 5.94732 5.14645 5.85355C5.05268 5.75979 5 5.63261 5 5.5Z" fill="currentColor" />
            </svg>
        </div>
            Deprecated feature
        </div>;
};

<div id="uuidv7-generation">
  ## Generación de UUIDv7
</div>

El UUID generado contiene una marca temporal de 48 bits en milisegundos Unix, seguida de la versión "7" (4 bits), un contador (42 bits) para distinguir los UUID dentro de un milisegundo (incluido un campo de variante "2", 2 bits) y un campo aleatorio (32 bits).
Para una marca temporal dada (`unix_ts_ms`), el contador comienza con un valor aleatorio y se incrementa en 1 por cada UUID nuevo hasta que la marca temporal cambia. En caso de desbordamiento del contador, el campo de marca temporal se incrementa en 1 y el contador se restablece a un nuevo valor inicial aleatorio.
Las funciones de generación de UUID garantizan que el campo del contador dentro de una marca temporal se incremente de forma monótona en todas las invocaciones de la función realizadas por hilos y consultas que se ejecutan de forma concurrente.

```text theme={null}
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|                           unix_ts_ms                          |
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|          unix_ts_ms           |  ver  |   counter_high_bits   |
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|var|                   counter_low_bits                        |
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|                            rand_b                             |
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
```

<div id="snowflake-id-generation">
  ## Generación de ID de Snowflake
</div>

El ID de Snowflake generado contiene la marca de tiempo Unix actual en milisegundos (41 bits más 1 bit superior en cero), seguida de un id de máquina (10 bits) y un contador (12 bits) para distinguir los ID dentro de un mismo milisegundo. Para cualquier marca temporal dada (`unix_ts_ms`), el contador empieza en 0 y se incrementa en 1 para cada nuevo ID de Snowflake hasta que cambia la marca temporal. Si el contador se desborda, el campo de marca temporal se incrementa en 1 y el contador se reinicia a 0.

<Note>
  Los ID de Snowflake generados se basan en la época UNIX 1970-01-01. Aunque no existe ningún estándar ni recomendación sobre la época de los ID de Snowflake, las implementaciones de otros sistemas pueden usar una época distinta; por ejemplo, Twitter/X (2010-11-04) o Mastodon (2015-01-01).
</Note>

```text theme={null}
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|0|                         timestamp                           |
├─┼                 ┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┤
|                   |     machine_id    |    machine_seq_num    |
└─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┘
```

{/*AUTOGENERATED_START*/}

<div id="UUIDNumToString">
  ## UUIDNumToString
</div>

Introducido en: v1.1.0

Toma una representación binaria de un UUID, cuyo formato puede especificarse opcionalmente mediante `variant` (`Big-endian` de forma predeterminada), y devuelve una cadena de 36 caracteres en formato de texto.

**Sintaxis**

```sql theme={null}
UUIDNumToString(binary[, variant])
```

**Argumentos**

* `binary` — Representación binaria de un UUID. [`FixedString(16)`](/es/reference/data-types/fixedstring)
* `variant` — Variante según lo especificado en [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (por defecto), 2 = `Microsoft`. [`(U)Int*`](/es/reference/data-types/int-uint)

**Valor devuelto**

Devuelve el UUID como una cadena. [`String`](/es/reference/data-types/string)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT
    'a/<@];!~p{jTj={)' AS bytes,
    UUIDNumToString(toFixedString(bytes, 16)) AS uuid
```

```response title=Response theme={null}
┌─bytes────────────┬─uuid─────────────────────────────────┐
│ a/<@];!~p{jTj={) │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │
└──────────────────┴──────────────────────────────────────┘
```

**variante de Microsoft**

```sql title=Query theme={null}
SELECT
    '@</a;]~!p{jTj={)' AS bytes,
    UUIDNumToString(toFixedString(bytes, 16), 2) AS uuid
```

```response title=Response theme={null}
┌─bytes────────────┬─uuid─────────────────────────────────┐
│ @</a;]~!p{jTj={) │ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │
└──────────────────┴──────────────────────────────────────┘
```

<div id="UUIDStringToNum">
  ## UUIDStringToNum
</div>

Introducido en: v1.1.0

Acepta una cadena de 36 caracteres con el formato `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` y devuelve un [FixedString(16)](/es/reference/data-types/fixedstring) como representación binaria, cuyo formato puede especificarse opcionalmente mediante `variant` (`Big-endian` de forma predeterminada).

**Sintaxis**

```sql theme={null}
UUIDStringToNum(string[, variant = 1])
```

**Argumentos**

* `string` — Una cadena o una cadena de longitud fija de 36 caracteres [`String`](/es/reference/data-types/string) o [`FixedString(36)`](/es/reference/data-types/fixedstring)
* `variant` — Variante según lo especificado en [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (predeterminado), 2 = `Microsoft`. [`(U)Int*`](/es/reference/data-types/int-uint)

**Valor devuelto**

Devuelve la representación binaria de `string`. [`FixedString(16)`](/es/reference/data-types/fixedstring)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT
    '612f3c40-5d3b-217e-707b-6a546a3d7b29' AS uuid,
    UUIDStringToNum(uuid) AS bytes
```

```response title=Response theme={null}
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ a/<@];!~p{jTj={) │
└──────────────────────────────────────┴──────────────────┘
```

**Variante de Microsoft**

```sql title=Query theme={null}
SELECT
    '612f3c40-5d3b-217e-707b-6a546a3d7b29' AS uuid,
    UUIDStringToNum(uuid, 2) AS bytes
```

```response title=Response theme={null}
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ @</a;]~!p{jTj={) │
└──────────────────────────────────────┴──────────────────┘
```

<div id="UUIDToNum">
  ## UUIDToNum
</div>

Introducido en: v24.5.0

Acepta un [UUID](/es/reference/data-types/uuid) y devuelve su representación binaria como un [FixedString(16)](/es/reference/data-types/fixedstring), con el formato especificado opcionalmente mediante `variant` (`Big-endian` de forma predeterminada).
Esta función reemplaza la llamada combinada a dos funciones, `UUIDStringToNum(toString(uuid))`, por lo que no se requiere una conversión intermedia de UUID a cadena para extraer los bytes de un UUID.

**Sintaxis**

```sql theme={null}
UUIDToNum(uuid[, variant = 1])
```

**Argumentos**

* `uuid` — UUID. [`String`](/es/reference/data-types/string) o [`FixedString`](/es/reference/data-types/fixedstring)
* `variant` — Variante según lo especificado en [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (predeterminado), 2 = `Microsoft`. [`(U)Int*`](/es/reference/data-types/int-uint)

**Valor devuelto**

Devuelve una representación binaria del UUID. [`FixedString(16)`](/es/reference/data-types/fixedstring)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT
    toUUID('612f3c40-5d3b-217e-707b-6a546a3d7b29') AS uuid,
    UUIDToNum(uuid) AS bytes
```

```response title=Response theme={null}
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ a/<@];!~p{jTj={) │
└──────────────────────────────────────┴──────────────────┘
```

**Variante de Microsoft**

```sql title=Query theme={null}
SELECT
    toUUID('612f3c40-5d3b-217e-707b-6a546a3d7b29') AS uuid,
    UUIDToNum(uuid, 2) AS bytes
```

```response title=Response theme={null}
┌─uuid─────────────────────────────────┬─bytes────────────┐
│ 612f3c40-5d3b-217e-707b-6a546a3d7b29 │ @</a;]~!p{jTj={) │
└──────────────────────────────────────┴──────────────────┘
```

<div id="UUIDv7ToDateTime">
  ## UUIDv7ToDateTime
</div>

Introducido en: v24.5.0

Devuelve el componente de marca temporal de un UUID de versión 7.

**Sintaxis**

```sql theme={null}
UUIDv7ToDateTime(uuid[, timezone])
```

**Argumentos**

* `uuid` — Un UUID de versión 7. [`String`](/es/reference/data-types/string)
* `timezone` — Opcional. [Nombre de la zona horaria](/es/reference/settings/server-settings/settings#timezone) para el valor devuelto. [`String`](/es/reference/data-types/string)

**Valor devuelto**

Devuelve una marca temporal con precisión de milisegundos. Si el UUID no es un UUID válido de versión 7, devuelve `1970-01-01 00:00:00.000`. [`DateTime64(3)`](/es/reference/data-types/datetime64)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT UUIDv7ToDateTime(toUUID('018f05c9-4ab8-7b86-b64e-c9f03fbd45d1'))
```

```response title=Response theme={null}
┌─UUIDv7ToDateTime(toUUID('018f05c9-4ab8-7b86-b64e-c9f03fbd45d1'))─┐
│                                          2024-04-22 15:30:29.048 │
└──────────────────────────────────────────────────────────────────┘
```

**Con zona horaria**

```sql title=Query theme={null}
SELECT UUIDv7ToDateTime(toUUID('018f05c9-4ab8-7b86-b64e-c9f03fbd45d1'), 'America/New_York')
```

```response title=Response theme={null}
┌─UUIDv7ToDateTime(toUUID('018f05c9-4ab8-7b86-b64e-c9f03fbd45d1'), 'America/New_York')─┐
│                                                             2024-04-22 11:30:29.048 │
└─────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="dateTime64ToSnowflake">
  ## dateTime64ToSnowflake
</div>

Introducido en: v21.10.0

<Warning>
  Esta función está obsoleta y solo puede utilizarse si la configuración [`allow_deprecated_snowflake_conversion_functions`](/es/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) está habilitada.
  La función se eliminará en el futuro.

  Utilice en su lugar la función [dateTime64ToSnowflakeID](#dateTime64ToSnowflakeID).
</Warning>

Convierte un [DateTime64](/es/reference/data-types/datetime64) en el primer [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) correspondiente al momento indicado.

**Sintaxis**

```sql theme={null}
dateTime64ToSnowflake(value)
```

**Argumentos**

* `value` — Fecha con hora. [`DateTime64`](/es/reference/data-types/datetime64)

**Valor devuelto**

Devuelve el valor de entrada convertido en el primer Snowflake ID de ese momento. [`Int64`](/es/reference/data-types/int-uint)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
WITH toDateTime64('2021-08-15 18:57:56.492', 3, 'Asia/Shanghai') AS dt64 SELECT dateTime64ToSnowflake(dt64);
```

```response title=Response theme={null}
┌─dateTime64ToSnowflake(dt64)─┐
│         1426860704886947840 │
└─────────────────────────────┘
```

<div id="dateTime64ToSnowflakeID">
  ## dateTime64ToSnowflakeID
</div>

Introducido en: v24.6.0

Convierte un valor de [DateTime64](/es/reference/data-types/datetime64) en el primer [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) correspondiente al instante dado.

**Sintaxis**

```sql theme={null}
dateTime64ToSnowflakeID(value[, epoch])
```

**Argumentos**

* `value` — Fecha con hora. [`DateTime64`](/es/reference/data-types/datetime64)
* `epoch` — Época del ID de Snowflake, en milisegundos desde 1970-01-01. El valor predeterminado es 0 (1970-01-01). Para la época de Twitter/X (2015-01-01), proporcione 1288834974657. [`UInt*`](/es/reference/data-types/int-uint)

**Valor devuelto**

Valor de entrada convertido a [`UInt64`](/es/reference/data-types/int-uint)

**Ejemplos**

**simple**

```sql title=Query theme={null}
SELECT dateTime64ToSnowflakeID(toDateTime64('2021-08-15 18:57:56', 3, 'Asia/Shanghai'))
```

```response title=Response theme={null}
6832626394434895872
```

<div id="dateTimeToSnowflake">
  ## dateTimeToSnowflake
</div>

Introducido en: v21.10.0

<Warning>
  Esta función está obsoleta y solo puede usarse si la configuración [`allow_deprecated_snowflake_conversion_functions`](/es/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) está habilitada.
  La función se eliminará en algún momento en el futuro.

  Utilice en su lugar la función [dateTimeToSnowflakeID](#dateTimeToSnowflakeID).
</Warning>

Convierte un valor [DateTime](/es/reference/data-types/datetime) en el primer [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) correspondiente al momento indicado.

**Sintaxis**

```sql theme={null}
dateTimeToSnowflake(value)
```

**Argumentos**

* `value` — Fecha y hora. [`DateTime`](/es/reference/data-types/datetime)

**Valor devuelto**

Devuelve el valor de entrada como el primer Snowflake ID de ese momento. [`Int64`](/es/reference/data-types/int-uint)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
WITH toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai') AS dt SELECT dateTimeToSnowflake(dt);
```

```response title=Response theme={null}
┌─dateTimeToSnowflake(dt)─┐
│     1426860702823350272 │
└─────────────────────────┘
```

<div id="dateTimeToSnowflakeID">
  ## dateTimeToSnowflakeID
</div>

Introducido en: v24.6.0

Convierte un valor de [DateTime](/es/reference/data-types/datetime) en el primer [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) correspondiente al momento dado.

**Sintaxis**

```sql theme={null}
dateTimeToSnowflakeID(value[, epoch])
```

**Argumentos**

* `value` — Fecha con hora. [`DateTime`](/es/reference/data-types/datetime)
* `epoch` — Epoch del Snowflake ID en milisegundos desde 1970-01-01. El valor predeterminado es 0 (1970-01-01). Para el epoch de Twitter/X (2015-01-01), proporcione 1288834974657. [`UInt*`](/es/reference/data-types/int-uint)

**Valor devuelto**

Valor de entrada convertido a [`UInt64`](/es/reference/data-types/int-uint)

**Ejemplos**

**simple**

```sql title=Query theme={null}
SELECT dateTimeToSnowflakeID(toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai'))
```

```response title=Response theme={null}
6832626392367104000
```

<div id="dateTimeToUUIDv7">
  ## dateTimeToUUIDv7
</div>

Introducido en: v25.8.0

Convierte un valor de [DateTime](/es/reference/data-types/datetime) en un [UUIDv7](https://en.wikipedia.org/wiki/UUID#Version_7) para el instante indicado.

Consulta la sección ["Generación de UUIDv7"](#uuidv7-generation) para obtener detalles sobre la estructura del UUID, la gestión del contador y las garantías de concurrencia.

<Note>
  A partir de septiembre de 2025, los UUID de versión 7 están en fase de borrador y su estructura puede cambiar en el futuro.
</Note>

**Sintaxis**

```sql theme={null}
dateTimeToUUIDv7(value)
```

**Argumentos**

* `value` — Fecha y hora. [`DateTime`](/es/reference/data-types/datetime)

**Valor devuelto**

Devuelve un UUIDv7. [`UUID`](/es/reference/data-types/uuid)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT dateTimeToUUIDv7(toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai'));
```

```response title=Response theme={null}
┌─dateTimeToUUIDv7(toDateTime('2021-08-15 18:57:56', 'Asia/Shanghai'))─┐
│ 018f05af-f4a8-778f-beee-1bedbc95c93b                                   │
└─────────────────────────────────────────────────────────────────────────┘
```

**varios UUID para la misma marca de tiempo**

```sql title=Query theme={null}
SELECT dateTimeToUUIDv7(toDateTime('2021-08-15 18:57:56'));
SELECT dateTimeToUUIDv7(toDateTime('2021-08-15 18:57:56'));
```

```response title=Response theme={null}
┌─dateTimeToUUIDv7(t⋯08-15 18:57:56'))─┐
│ 017b4b2d-7720-76ed-ae44-bbcc23a8c550 │
└──────────────────────────────────────┘
┌─dateTimeToUUIDv7(t⋯08-15 18:57:56'))─┐
│ 017b4b2d-7720-76ed-ae44-bbcf71ed0fd3 │
└──────────────────────────────────────┘
```

<div id="generateSnowflakeID">
  ## generateSnowflakeID
</div>

Introducido en: v24.6.0

Genera un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID).

La función `generateSnowflakeID` garantiza que el campo contador dentro de una marca de tiempo se incremente de forma monotónica en todas las invocaciones de la función, incluso en subprocesos y consultas que se ejecutan de forma concurrente.

Consulte la sección ["Generación de Snowflake ID"](#snowflake-id-generation) para obtener detalles de implementación.

**Sintaxis**

```sql theme={null}
generateSnowflakeID([expr, [machine_id]])
```

**Argumentos**

* `expr` — Una [expresión](/es/reference/syntax#expressions) arbitraria que se utiliza para sortear la [eliminación de subexpresiones comunes](/es/reference/functions/regular-functions/overview#common-subexpression-elimination) si la función se invoca varias veces en una consulta. El valor de la expresión no influye en el Snowflake ID devuelto. Opcional. - `machine_id` — Un ID de máquina; se utilizan los 10 bits menos significativos. [Int64](/es/reference/data-types/int-uint). Opcional.

**Valor devuelto**

Devuelve el Snowflake ID. [`UInt64`](/es/reference/data-types/int-uint)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
CREATE TABLE tab (id UInt64)
ENGINE = MergeTree()
ORDER BY tuple();

INSERT INTO tab SELECT generateSnowflakeID();

SELECT * FROM tab;
```

```response title=Response theme={null}
┌──────────────────id─┐
│ 7199081390080409600 │
└─────────────────────┘
```

**Varios ID de Snowflake generados por fila**

```sql title=Query theme={null}
SELECT generateSnowflakeID(1), generateSnowflakeID(2);
```

```response title=Response theme={null}
┌─generateSnowflakeID(1)─┬─generateSnowflakeID(2)─┐
│    7199081609652224000 │    7199081609652224001 │
└────────────────────────┴────────────────────────┘
```

**Con una expresión y un ID de máquina**

```sql title=Query theme={null}
SELECT generateSnowflakeID('expr', 1);
```

```response title=Response theme={null}
┌─generateSnowflakeID('expr', 1)─┐
│            7201148511606784002 │
└────────────────────────────────┘
```

<div id="generateUUIDv4">
  ## generateUUIDv4
</div>

Introducida en: v1.1.0

Genera un [UUID](/es/reference/data-types/uuid) de [versión 4](https://tools.ietf.org/html/rfc4122#section-4.4).

**Sintaxis**

```sql theme={null}
generateUUIDv4([expr])
```

**Argumentos**

* `expr` — Opcional. Una expresión arbitraria utilizada para eludir la [eliminación de subexpresiones comunes](/es/reference/functions/regular-functions/overview#common-subexpression-elimination) si se llama a la función varias veces en una consulta. El valor de la expresión no afecta al UUID devuelto.

**Valor devuelto**

Devuelve un UUIDv4. [`UUID`](/es/reference/data-types/uuid)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT generateUUIDv4(number) FROM numbers(3);
```

```response title=Response theme={null}
┌─generateUUIDv4(number)───────────────┐
│ fcf19b77-a610-42c5-b3f5-a13c122f65b6 │
│ 07700d36-cb6b-4189-af1d-0972f23dc3bc │
│ 68838947-1583-48b0-b9b7-cf8268dd343d │
└──────────────────────────────────────┘
```

**Eliminación de subexpresiones comunes**

```sql title=Query theme={null}
SELECT generateUUIDv4(1), generateUUIDv4(1);
```

```response title=Response theme={null}
┌─generateUUIDv4(1)────────────────────┬─generateUUIDv4(2)────────────────────┐
│ 2d49dc6e-ddce-4cd0-afb8-790956df54c1 │ 2d49dc6e-ddce-4cd0-afb8-790956df54c1 │
└──────────────────────────────────────┴──────────────────────────────────────┘
```

<div id="generateUUIDv7">
  ## generateUUIDv7
</div>

Introducido en: v24.5.0

Genera un [UUID](/es/reference/data-types/uuid) de [versión 7](https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04).

Consulta la sección ["Generación de UUIDv7"](#uuidv7-generation) para obtener más información sobre la estructura del UUID, la gestión del contador y las garantías de concurrencia.

<Note>
  En septiembre de 2025, los UUID de versión 7 están en estado de borrador y su estructura puede cambiar en el futuro.
</Note>

**Sintaxis**

```sql theme={null}
generateUUIDv7([expr])
```

**Argumentos**

* `expr` — Opcional. Una expresión arbitraria que se utiliza para evitar la [eliminación de subexpresiones comunes](/es/reference/functions/regular-functions/overview#common-subexpression-elimination) si la función se llama varias veces en una consulta. El valor de la expresión no afecta al UUID devuelto. [`Any`](/es/reference/data-types)

**Valor devuelto**

Devuelve un UUIDv7. [`UUID`](/es/reference/data-types/uuid)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT generateUUIDv7(number) FROM numbers(3);
```

```response title=Response theme={null}
┌─generateUUIDv7(number)───────────────┐
│ 019947fb-5766-7ed0-b021-d906f8f7cebb │
│ 019947fb-5766-7ed0-b021-d9072d0d1e07 │
│ 019947fb-5766-7ed0-b021-d908dca2cf63 │
└──────────────────────────────────────┘
```

**Eliminación de subexpresiones comunes**

```sql title=Query theme={null}
SELECT generateUUIDv7(1), generateUUIDv7(1);
```

```response title=Response theme={null}
┌─generateUUIDv7(1)────────────────────┬─generateUUIDv7(1)────────────────────┐
│ 019947ff-0f87-7d88-ace0-8b5b3a66e0c1 │ 019947ff-0f87-7d88-ace0-8b5b3a66e0c1 │
└──────────────────────────────────────┴──────────────────────────────────────┘
```

<div id="snowflakeIDToDateTime">
  ## snowflakeIDToDateTime
</div>

Introducido en: v24.6.0

Devuelve el componente de marca temporal de un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) como un valor de tipo [DateTime](/es/reference/data-types/datetime).

**Sintaxis**

```sql theme={null}
snowflakeIDToDateTime(value[, epoch[, time_zone]])
```

**Argumentos**

* `value` — Snowflake ID. [`UInt64`](/es/reference/data-types/int-uint)
* `epoch` — Opcional. Epoch del Snowflake ID en milisegundos desde 1970-01-01. El valor predeterminado es 0 (1970-01-01). Para el epoch de Twitter/X (2015-01-01), proporcione 1288834974657. [`UInt*`](/es/reference/data-types/int-uint)
* `time_zone` — Opcional. [Zona horaria](/es/reference/settings/server-settings/settings#timezone). La función analiza `time_string` de acuerdo con la zona horaria. [`String`](/es/reference/data-types/string)

**Valor devuelto**

Devuelve el componente de marca temporal de `value`. [`DateTime`](/es/reference/data-types/datetime)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT snowflakeIDToDateTime(7204436857747984384) AS res
```

```response title=Response theme={null}
┌─────────────────res─┐
│ 2024-06-06 10:59:58 │
└─────────────────────┘
```

<div id="snowflakeIDToDateTime64">
  ## snowflakeIDToDateTime64
</div>

Introducido en: v24.6.0

Devuelve el componente de marca temporal de un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) como un valor del tipo [DateTime64](/es/reference/data-types/datetime64).

**Sintaxis**

```sql theme={null}
snowflakeIDToDateTime64(value[, epoch[, time_zone]])
```

**Argumentos**

* `value` — Snowflake ID. [`UInt64`](/es/reference/data-types/int-uint)
* `epoch` — Opcional. Epoch del Snowflake ID en milisegundos desde 1970-01-01. El valor predeterminado es 0 (1970-01-01). Para el epoch de Twitter/X (2015-01-01), proporcione 1288834974657. [`UInt*`](/es/reference/data-types/int-uint)
* `time_zone` — Opcional. [Zona horaria](/es/reference/settings/server-settings/settings#timezone). La función interpreta `time_string` según la zona horaria. [`String`](/es/reference/data-types/string)

**Valor devuelto**

Devuelve el componente de marca temporal de `value` como un `DateTime64` con escala = 3, es decir, precisión de milisegundos. [`DateTime64`](/es/reference/data-types/datetime64)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT snowflakeIDToDateTime64(7204436857747984384) AS res
```

```response title=Response theme={null}
┌─────────────────res─┐
│ 2024-06-06 10:59:58 │
└─────────────────────┘
```

<div id="snowflakeToDateTime">
  ## snowflakeToDateTime
</div>

Introducido en: v21.10.0

<Warning>
  Esta función está obsoleta y solo puede usarse si la configuración [`allow_deprecated_snowflake_conversion_functions`](/es/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) está habilitada.
  La función se eliminará en el futuro.

  Use en su lugar la función [`snowflakeIDToDateTime`](#snowflakeIDToDateTime).
</Warning>

Extrae el componente de marca temporal de un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) en formato [DateTime](/es/reference/data-types/datetime).

**Sintaxis**

```sql theme={null}
snowflakeToDateTime(value[, time_zone])
```

**Argumentos**

* `value` — Snowflake ID. [`Int64`](/es/reference/data-types/int-uint)
* `time_zone` — Opcional. [Zona horaria](/es/reference/settings/server-settings/settings#timezone). La función interpreta `time_string` según la zona horaria. [`String`](/es/reference/data-types/string)

**Valor devuelto**

Devuelve el componente de marca temporal de `value`. [`DateTime`](/es/reference/data-types/datetime)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT snowflakeToDateTime(CAST('1426860702823350272', 'Int64'), 'UTC');
```

```response title=Response theme={null}
┌─snowflakeToDateTime(CAST('1426860702823350272', 'Int64'), 'UTC')─┐
│                                              2021-08-15 10:57:56 │
└──────────────────────────────────────────────────────────────────┘
```

<div id="snowflakeToDateTime64">
  ## snowflakeToDateTime64
</div>

Introducido en: v21.10.0

<Warning>
  Esta función está obsoleta y solo puede usarse si la configuración [`allow_deprecated_snowflake_conversion_functions`](/es/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) está habilitada.
  La función se eliminará en algún momento en el futuro.

  Utilice en su lugar la función [`snowflakeIDToDateTime64`](#snowflakeIDToDateTime64).
</Warning>

Extrae el componente marca temporal de un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) en formato [DateTime64](/es/reference/data-types/datetime64).

**Sintaxis**

```sql theme={null}
snowflakeToDateTime64(value[, time_zone])
```

**Argumentos**

* `value` — Snowflake ID. [`Int64`](/es/reference/data-types/int-uint)
* `time_zone` — Opcional. [Zona horaria](/es/reference/settings/server-settings/settings#timezone). La función interpreta `time_string` según la zona horaria. [`String`](/es/reference/data-types/string)

**Valor devuelto**

Devuelve el componente de marca temporal de `value`. [`DateTime64(3)`](/es/reference/data-types/datetime64)

**Ejemplos**

**Ejemplo de uso**

```sql title=Query theme={null}
SELECT snowflakeToDateTime64(CAST('1426860802823350272', 'Int64'), 'UTC');
```

```response title=Response theme={null}
┌─snowflakeToDateTime64(CAST('1426860802823350272', 'Int64'), 'UTC')─┐
│                                            2021-08-15 10:58:19.841 │
└────────────────────────────────────────────────────────────────────┘
```

<div id="toUUIDOrDefault">
  ## toUUIDOrDefault
</div>

Introducido en: v21.1.0

Convierte un valor String al tipo UUID. Si la conversión falla, devuelve un valor UUID predeterminado en lugar de producir un error.

Esta función intenta analizar una cadena de 36 caracteres en el formato UUID estándar (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Si la cadena no puede convertirse en un UUID válido, la función devuelve el valor UUID predeterminado proporcionado.

**Sintaxis**

```sql theme={null}
toUUIDOrDefault(string, default)
```

**Argumentos**

* `string` — Cadena de 36 caracteres o FixedString(36) que se convertirá a UUID. - `default` — valor UUID que se devolverá si el primer argumento no puede convertirse al tipo UUID.

**Valor devuelto**

Devuelve el UUID convertido si la operación se realiza correctamente, o el UUID predeterminado si la conversión falla. [`UUID`](/es/reference/data-types/uuid)

**Ejemplos**

**Una conversión correcta devuelve el UUID analizado**

```sql title=Query theme={null}
SELECT toUUIDOrDefault('61f0c404-5cb3-11e7-907b-a6006ad3dba0', toUUID('59f0c404-5cb3-11e7-907b-a6006ad3dba0'));
```

```response title=Response theme={null}
┌─toUUIDOrDefault('61f0c404-5cb3-11e7-907b-a6006ad3dba0', toUUID('59f0c404-5cb3-11e7-907b-a6006ad3dba0'))─┐
│ 61f0c404-5cb3-11e7-907b-a6006ad3dba0                                                                     │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

**Si la conversión falla, devuelve el UUID predeterminado**

```sql title=Query theme={null}
SELECT toUUIDOrDefault('-----61f0c404-5cb3-11e7-907b-a6006ad3dba0', toUUID('59f0c404-5cb3-11e7-907b-a6006ad3dba0'));
```

```response title=Response theme={null}
┌─toUUIDOrDefault('-----61f0c404-5cb3-11e7-907b-a6006ad3dba0', toUUID('59f0c404-5cb3-11e7-907b-a6006ad3dba0'))─┐
│ 59f0c404-5cb3-11e7-907b-a6006ad3dba0                                                                          │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

<div id="toUUIDOrNull">
  ## toUUIDOrNull
</div>

Introducido en: v20.12.0

Convierte un valor de entrada en un valor de tipo `UUID`, pero devuelve `NULL` en caso de error.

Como [`toUUID`](/es/reference/functions/regular-functions/type-conversion-functions#toUUID), pero devuelve `NULL` en lugar de lanzar una excepción cuando se producen errores de conversión.

Argumentos admitidos:

* Representaciones en cadena de UUID en formato estándar (8-4-4-4-12 dígitos hexadecimales).
* Representaciones en cadena de UUID sin guiones (32 dígitos hexadecimales).

Argumentos no admitidos (devuelven `NULL`):

* Formatos de cadena no válidos.
* Tipos que no son de cadena.
* UUID mal formados.

**Sintaxis**

```sql theme={null}
toUUIDOrNull(x)
```

**Argumentos**

* `x` — Una representación en forma de cadena de un UUID. [`String`](/es/reference/data-types/string)

**Valor devuelto**

Devuelve un valor UUID si la operación se realiza correctamente; de lo contrario, `NULL`. [`UUID`](/es/reference/data-types/uuid) o [`NULL`](/es/reference/syntax#null)

**Ejemplos**

**Ejemplos de uso**

```sql title=Query theme={null}
SELECT
    toUUIDOrNull('550e8400-e29b-41d4-a716-446655440000') AS valid_uuid,
    toUUIDOrNull('invalid-uuid') AS invalid_uuid
```

```response title=Response theme={null}
┌─valid_uuid───────────────────────────┬─invalid_uuid─┐
│ 550e8400-e29b-41d4-a716-446655440000 │         ᴺᵁᴸᴸ │
└──────────────────────────────────────┴──────────────┘
```
