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

> Documentation des fonctions de manipulation des UUIDs

# Fonctions de manipulation des 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>
            Fonctionnalité dépréciée
        </div>;
};

<div id="functions-for-working-with-uuids">
  # Fonctions pour manipuler les UUIDs
</div>

<div id="uuidv7-generation">
  ## Génération des UUIDv7
</div>

L’UUID généré contient un horodatage de 48 bits en millisecondes Unix, suivi de la version "7" (4 bits), d’un compteur (42 bits) permettant de distinguer les UUID au sein d’une même milliseconde (y compris un champ de variante "2", 2 bits) et d’un champ aléatoire (32 bits).
Pour un horodatage donné (`unix_ts_ms`), le compteur démarre à une valeur aléatoire et est incrémenté de 1 pour chaque nouvel UUID jusqu’à ce que l’horodatage change. En cas de débordement du compteur, le champ d’horodatage est incrémenté de 1 et le compteur est réinitialisé à une nouvelle valeur de départ aléatoire.
Les fonctions de génération d’UUID garantissent que le champ de compteur, pour un horodatage donné, s’incrémente de façon monotone sur l’ensemble des appels de fonction effectués dans des threads et des requêtes exécutés de manière 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">
  ## Génération des Snowflake IDs
</div>

Le Snowflake ID généré contient l’horodatage Unix actuel en millisecondes (41 + 1 bits de poids fort à zéro), suivi d’un identifiant de machine (10 bits) et d’un compteur (12 bits) pour distinguer les identifiants au sein d’une même milliseconde. Pour un horodatage donné (`unix_ts_ms`), le compteur commence à 0 et est incrémenté de 1 pour chaque nouveau Snowflake ID, jusqu’à ce que l’horodatage change. En cas de dépassement de capacité du compteur, le champ d’horodatage est incrémenté de 1 et le compteur est réinitialisé à 0.

<Note>
  Les Snowflake IDs générés sont basés sur l’époque Unix du 1970-01-01. Bien qu’il n’existe aucune norme ni recommandation concernant l’époque des Snowflake IDs, les implémentations dans d’autres systèmes peuvent utiliser une époque différente, par exemple Twitter/X (2010-11-04) ou 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>

Introduit dans : v1.1.0

Prend la représentation binaire d’un UUID, dont le format peut être indiqué de manière facultative par `variant` (`Big-endian` par défaut), et renvoie une chaîne de 36 caractères au format texte.

**Syntaxe**

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

**Arguments**

* `binary` — Représentation binaire d’un UUID. [`FixedString(16)`](/fr/reference/data-types/fixedstring)
* `variant` — Variante telle que définie par la [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (par défaut), 2 = `Microsoft`. [`(U)Int*`](/fr/reference/data-types/int-uint)

**Valeur renvoyée**

Renvoyer l’UUID sous forme de chaîne. [`String`](/fr/reference/data-types/string)

**Exemples**

**Exemple d’utilisation**

```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 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>

Introduite dans : v1.1.0

Accepte une chaîne de 36 caractères au format `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` et renvoie un [FixedString(16)](/fr/reference/data-types/fixedstring) sous sa représentation binaire, dont le format peut être spécifié via `variant` (`Big-endian` par défaut).

**Syntaxe**

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

**Arguments**

* `string` — Une chaîne de caractères ou une chaîne de longueur fixe de 36 caractères) [`String`](/fr/reference/data-types/string) ou [`FixedString(36)`](/fr/reference/data-types/fixedstring)
* `variant` — Variante telle que spécifiée par la [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (par défaut), 2 = `Microsoft`. [`(U)Int*`](/fr/reference/data-types/int-uint)

**Valeur renvoyée**

Renvoie la représentation binaire de `string`. [`FixedString(16)`](/fr/reference/data-types/fixedstring)

**Exemples**

**Exemple d'utilisation**

```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 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>

Introduit dans : v24.5.0

Accepte un [UUID](/fr/reference/data-types/uuid) et renvoie sa représentation binaire sous la forme d’un [FixedString(16)](/fr/reference/data-types/fixedstring), dont le format peut être spécifié via `variant` (`Big-endian` par défaut).
Cette fonction remplace les appels combinés aux deux fonctions `UUIDStringToNum(toString(uuid))`, de sorte qu’aucune conversion intermédiaire de l’UUID en chaîne n’est nécessaire pour extraire les octets d’un UUID.

**Syntaxe**

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

**Arguments**

* `uuid` — UUID. [`String`](/fr/reference/data-types/string) ou [`FixedString`](/fr/reference/data-types/fixedstring)
* `variant` — Variante telle que définie dans la [RFC4122](https://datatracker.ietf.org/doc/html/rfc4122#section-4.1.1). 1 = `Big-endian` (par défaut), 2 = `Microsoft`. [`(U)Int*`](/fr/reference/data-types/int-uint)

**Valeur renvoyée**

Renvoie une représentation binaire de l'UUID. [`FixedString(16)`](/fr/reference/data-types/fixedstring)

**Exemples**

**Exemple d'utilisation**

```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 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>

Introduit dans : v24.5.0

Renvoie le composant d’horodatage d’un UUID version 7.

**Syntaxe**

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

**Arguments**

* `uuid` — Un UUID version 7. [`String`](/fr/reference/data-types/string)
* `timezone` — Facultatif. [Nom du fuseau horaire](/fr/reference/settings/server-settings/settings#timezone) de la valeur renvoyée. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie un horodatage avec une précision à la milliseconde. Si l'UUID n'est pas un UUID version 7 valide, renvoie `1970-01-01 00:00:00.000`. [`DateTime64(3)`](/fr/reference/data-types/datetime64)

**Exemples**

**Exemple d'utilisation**

```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 │
└──────────────────────────────────────────────────────────────────┘
```

**Avec fuseau horaire**

```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>

Introduit dans : v21.10.0

<Warning>
  Cette fonction est dépréciée et ne peut être utilisée que si le paramètre [`allow_deprecated_snowflake_conversion_functions`](/fr/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) est activé.
  Elle sera supprimée ultérieurement.

  Veuillez utiliser la fonction [dateTime64ToSnowflakeID](#dateTime64ToSnowflakeID) à la place.
</Warning>

Convertit un [DateTime64](/fr/reference/data-types/datetime64) en premier [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) correspondant à l'instant indiqué.

**Syntaxe**

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

**Arguments**

* `value` — Date et heure. [`DateTime64`](/fr/reference/data-types/datetime64)

**Valeur renvoyée**

Renvoie la valeur d’entrée convertie en premier Snowflake ID correspondant à cet instant. [`Int64`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d'utilisation**

```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>

Introduit dans : v24.6.0

Convertit une valeur [DateTime64](/fr/reference/data-types/datetime64) en [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) initial à l’instant donné.

**Syntaxe**

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

**Arguments**

* `value` — Date et heure. [`DateTime64`](/fr/reference/data-types/datetime64)
* `epoch` — Epoch du Snowflake ID, en millisecondes depuis 1970-01-01. La valeur par défaut est 0 (1970-01-01). Pour l’epoch Twitter/X (2015-01-01), utilisez 1288834974657. [`UInt*`](/fr/reference/data-types/int-uint)

**Valeur renvoyée**

Valeur d’entrée convertie en [`UInt64`](/fr/reference/data-types/int-uint)

**Exemples**

**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>

Introduit dans : v21.10.0

<Warning>
  Cette fonction est dépréciée et ne peut être utilisée que si le paramètre [`allow_deprecated_snowflake_conversion_functions`](/fr/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) est activé.
  Cette fonction sera supprimée ultérieurement.

  Veuillez utiliser la fonction [dateTimeToSnowflakeID](#dateTimeToSnowflakeID) à la place.
</Warning>

Convertit une valeur [DateTime](/fr/reference/data-types/datetime) en premier [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) à l’instant donné.

**Syntaxe**

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

**Arguments**

* `value` — Date et heure. [`DateTime`](/fr/reference/data-types/datetime)

**Valeur renvoyée**

Renvoie la valeur d’entrée sous forme du premier Snowflake ID à cet instant. [`Int64`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d’utilisation**

```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>

Introduit dans : v24.6.0

Convertit une valeur [DateTime](/fr/reference/data-types/datetime) en premier [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) pour l’instant donné.

**Syntaxe**

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

**Arguments**

* `value` — Date avec heure. [`DateTime`](/fr/reference/data-types/datetime)
* `epoch` — Époque du Snowflake ID, en millisecondes depuis 1970-01-01. La valeur par défaut est 0 (1970-01-01). Pour l’époque Twitter/X (2015-01-01), indiquez 1288834974657. [`UInt*`](/fr/reference/data-types/int-uint)

**Valeur renvoyée**

Valeur d’entrée convertie en [`UInt64`](/fr/reference/data-types/int-uint)

**Exemples**

**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>

Introduit dans : v25.8.0

Convertit une valeur [DateTime](/fr/reference/data-types/datetime) en [UUIDv7](https://en.wikipedia.org/wiki/UUID#Version_7) pour l’instant donné.

Voir la section ["génération d’UUIDv7"](#uuidv7-generation) pour plus de détails sur la structure des UUID, la gestion du compteur et les garanties de concurrence.

<Note>
  En septembre 2025, les UUID version 7 sont encore à l’état de brouillon et leur structure pourrait évoluer à l’avenir.
</Note>

**Syntaxe**

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

**Arguments**

* `value` — Date et heure. [`DateTime`](/fr/reference/data-types/datetime)

**Valeur renvoyée**

Renvoie un UUIDv7. [`UUID`](/fr/reference/data-types/uuid)

**Exemples**

**Exemple d’utilisation**

```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                                   │
└─────────────────────────────────────────────────────────────────────────┘
```

**plusieurs UUID pour un même horodatage**

```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>

Introduit dans : v24.6.0

Génère un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID).

La fonction `generateSnowflakeID` garantit que le champ compteur d’un horodatage s’incrémente de manière monotone sur l’ensemble des invocations de la fonction dans des threads et des requêtes exécutés de manière concurrente.

Voir la section ["Génération de Snowflake ID"](#snowflake-id-generation) pour plus de détails sur l’implémentation.

**Syntaxe**

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

**Arguments**

* `expr` — Une [expression](/fr/reference/syntax#expressions) arbitraire utilisée pour contourner l’[élimination des sous-expressions communes](/fr/reference/functions/regular-functions/overview#common-subexpression-elimination) si la fonction est appelée plusieurs fois dans une requête. La valeur de l’expression n’a aucun effet sur le Snowflake ID renvoyé. Facultatif. - `machine_id` — Un ID de machine ; les 10 bits de poids faible sont utilisés. [Int64](/fr/reference/data-types/int-uint). Facultatif.

**Valeur renvoyée**

Renvoie le Snowflake ID. [`UInt64`](/fr/reference/data-types/int-uint)

**Exemples**

**Exemple d’utilisation**

```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 │
└─────────────────────┘
```

**Plusieurs Snowflake ID générés par ligne**

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

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

**Avec une expression et un ID de machine**

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

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

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

Introduite dans : v1.1.0

Génère un [UUID](/fr/reference/data-types/uuid) de [version 4](https://tools.ietf.org/html/rfc4122#section-4.4).

**Syntaxe**

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

**Arguments**

* `expr` — Facultatif. Expression arbitraire utilisée pour contourner l’[élimination des sous-expressions communes](/fr/reference/functions/regular-functions/overview#common-subexpression-elimination) si la fonction est appelée plusieurs fois dans une requête. La valeur de l’expression n’a aucun effet sur l’UUID renvoyé.

**Valeur renvoyée**

Renvoie un UUIDv4. [`UUID`](/fr/reference/data-types/uuid)

**Exemples**

**Exemple d’utilisation**

```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 │
└──────────────────────────────────────┘
```

**Élimination des sous-expressions communes**

```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>

Introduit dans : v24.5.0

Génère un [UUID](/fr/reference/data-types/uuid) de [version 7](https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format-04).

Voir la section ["Génération d’UUIDv7"](#uuidv7-generation) pour plus de détails sur la structure des UUID, la gestion du compteur et les garanties en cas de génération concurrente.

<Note>
  En septembre 2025, les UUID de version 7 sont encore à l’état de projet, et leur structure pourrait évoluer à l’avenir.
</Note>

**Syntaxe**

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

**Arguments**

* `expr` — Facultatif. Expression arbitraire utilisée pour contourner l'[élimination des sous-expressions communes](/fr/reference/functions/regular-functions/overview#common-subexpression-elimination) si la fonction est appelée plusieurs fois dans une requête. La valeur de l'expression n'a aucun effet sur l'UUID renvoyé. [`Any`](/fr/reference/data-types/index)

**Valeur renvoyée**

Renvoie un UUIDv7. [`UUID`](/fr/reference/data-types/uuid)

**Exemples**

**Exemple d'utilisation**

```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 │
└──────────────────────────────────────┘
```

**Élimination de sous-expressions communes**

```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>

Introduite dans : v24.6.0

Renvoie le composant d’horodatage d’un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) sous la forme d’une valeur de type [DateTime](/fr/reference/data-types/datetime).

**Syntaxe**

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

**Arguments**

* `value` — Snowflake ID. [`UInt64`](/fr/reference/data-types/int-uint)
* `epoch` — Facultatif. Époque du Snowflake ID, en millisecondes depuis 1970-01-01. La valeur par défaut est 0 (1970-01-01). Pour l'époque de Twitter/X (2015-01-01), indiquez 1288834974657. [`UInt*`](/fr/reference/data-types/int-uint)
* `time_zone` — Facultatif. [Fuseau horaire](/fr/reference/settings/server-settings/settings#timezone). La fonction interprète `time_string` selon le fuseau horaire. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie le composant d'horodatage de `value`. [`DateTime`](/fr/reference/data-types/datetime)

**Exemples**

**Exemple d'utilisation**

```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>

Introduit dans : v24.6.0

Renvoie le composant d’horodatage d’un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) sous forme d’une valeur de type [DateTime64](/fr/reference/data-types/datetime64).

**Syntaxe**

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

**Arguments**

* `value` — Snowflake ID. [`UInt64`](/fr/reference/data-types/int-uint)
* `epoch` — Facultatif. Époque du Snowflake ID en millisecondes depuis le 1970-01-01. La valeur par défaut est 0 (1970-01-01). Pour l’époque Twitter/X (2015-01-01), indiquez 1288834974657. [`UInt*`](/fr/reference/data-types/int-uint)
* `time_zone` — Facultatif. [Fuseau horaire](/fr/reference/settings/server-settings/settings#timezone). La fonction interprète `time_string` selon le fuseau horaire. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie le composant d’horodatage de `value` sous la forme d’un `DateTime64` avec scale = 3, c’est-à-dire une précision à la milliseconde. [`DateTime64`](/fr/reference/data-types/datetime64)

**Exemples**

**Exemple d’utilisation**

```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>

Introduit dans : v21.10.0

<Warning>
  Cette fonction est obsolète et ne peut être utilisée que si le paramètre [`allow_deprecated_snowflake_conversion_functions`](/fr/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) est activé.
  Cette fonction sera supprimée dans une future version.

  Veuillez utiliser la fonction [`snowflakeIDToDateTime`](#snowflakeIDToDateTime) à la place.
</Warning>

Extrait le composant d’horodatage d’un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) au format [DateTime](/fr/reference/data-types/datetime).

**Syntaxe**

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

**Arguments**

* `value` — Snowflake ID. [`Int64`](/fr/reference/data-types/int-uint)
* `time_zone` — Facultatif. [Fuseau horaire](/fr/reference/settings/server-settings/settings#timezone). La fonction interprète `time_string` en fonction du fuseau horaire. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie le composant d’horodatage de `value`. [`DateTime`](/fr/reference/data-types/datetime)

**Exemples**

**Exemple d’utilisation**

```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>

Introduit dans : v21.10.0

<Warning>
  Cette fonction est obsolète et ne peut être utilisée que si le paramètre [`allow_deprecated_snowflake_conversion_functions`](/fr/reference/settings/session-settings#allow_deprecated_snowflake_conversion_functions) est activé.
  Cette fonction sera supprimée à l'avenir.

  Veuillez utiliser la fonction [`snowflakeIDToDateTime64`](#snowflakeIDToDateTime64) à la place.
</Warning>

Extrait le composant d’horodatage d'un [Snowflake ID](https://en.wikipedia.org/wiki/Snowflake_ID) au format [DateTime64](/fr/reference/data-types/datetime64).

**Syntaxe**

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

**Arguments**

* `value` — Snowflake ID. [`Int64`](/fr/reference/data-types/int-uint)
* `time_zone` — Facultatif. [Fuseau horaire](/fr/reference/settings/server-settings/settings#timezone). La fonction interprète `time_string` en fonction du fuseau horaire. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie le composant d’horodatage de `value`. [`DateTime64(3)`](/fr/reference/data-types/datetime64)

**Exemples**

**Exemple d’utilisation**

```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>

Introduit dans : v21.1.0

Convertit une valeur String en UUID. Si la conversion échoue, renvoie une valeur UUID par défaut au lieu de générer une erreur.

Cette fonction tente d’analyser une chaîne de 36 caractères au format UUID standard (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
Si la chaîne ne peut pas être convertie en UUID valide, la fonction renvoie la valeur UUID par défaut fournie.

**Syntaxe**

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

**Arguments**

* `string` — Chaîne de 36 caractères ou FixedString(36) à convertir en UUID. - `default` — valeur UUID à renvoyer si le premier argument ne peut pas être converti en UUID.

**Valeur renvoyée**

Renvoie l’UUID converti si la conversion réussit, ou l’UUID par défaut en cas d’échec. [`UUID`](/fr/reference/data-types/uuid)

**Exemples**

**Une conversion réussie renvoie l’UUID obtenu**

```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                                                                     │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```

**En cas d’échec de conversion, renvoie l’UUID par défaut**

```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>

Introduit dans : v20.12.0

Convertit une valeur d’entrée en valeur de type `UUID`, mais renvoie `NULL` en cas d’erreur.

Comme [`toUUID`](/fr/reference/functions/regular-functions/type-conversion-functions#toUUID), mais renvoie `NULL` au lieu de lever une exception en cas d’erreur de conversion.

Arguments pris en charge :

* Représentations sous forme de chaîne d’UUID au format standard (8-4-4-4-12 chiffres hexadécimaux).
* Représentations sous forme de chaîne d’UUID sans traits d’union (32 chiffres hexadécimaux).

Arguments non pris en charge (renvoient `NULL`) :

* Formats de chaîne non valides.
* Types non chaîne.
* UUID mal formés.

**Syntaxe**

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

**Arguments**

* `x` — Une représentation sous forme de chaîne d’un UUID. [`String`](/fr/reference/data-types/string)

**Valeur renvoyée**

Renvoie une valeur UUID en cas de réussite, sinon `NULL`. [`UUID`](/fr/reference/data-types/uuid) ou [`NULL`](/fr/reference/syntax#null)

**Exemples**

**Exemples d’utilisation**

```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 │         ᴺᵁᴸᴸ │
└──────────────────────────────────────┴──────────────┘
```
