Passer au contenu principal

Fonctions pour manipuler les UUIDs

Génération des UUIDv7

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.

Génération des Snowflake IDs

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.
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).

UUIDNumToString

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
Arguments
  • binary — Représentation binaire d’un UUID. FixedString(16)
  • variant — Variante telle que définie par la RFC4122. 1 = Big-endian (par défaut), 2 = Microsoft. (U)Int*
Valeur renvoyée Renvoyer l’UUID sous forme de chaîne. String Exemples Exemple d’utilisation
Query
Response
Variante Microsoft
Query
Response

UUIDStringToNum

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) sous sa représentation binaire, dont le format peut être spécifié via variant (Big-endian par défaut). Syntaxe
Arguments
  • string — Une chaîne de caractères ou une chaîne de longueur fixe de 36 caractères) String ou FixedString(36)
  • variant — Variante telle que spécifiée par la RFC4122. 1 = Big-endian (par défaut), 2 = Microsoft. (U)Int*
Valeur renvoyée Renvoie la représentation binaire de string. FixedString(16) Exemples Exemple d’utilisation
Query
Response
Variante Microsoft
Query
Response

UUIDToNum

Introduit dans : v24.5.0 Accepte un UUID et renvoie sa représentation binaire sous la forme d’un FixedString(16), 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
Arguments Valeur renvoyée Renvoie une représentation binaire de l’UUID. FixedString(16) Exemples Exemple d’utilisation
Query
Response
Variante Microsoft
Query
Response

UUIDv7ToDateTime

Introduit dans : v24.5.0 Renvoie le composant d’horodatage d’un UUID version 7. Syntaxe
Arguments 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) Exemples Exemple d’utilisation
Query
Response
Avec fuseau horaire
Query
Response

dateTime64ToSnowflake

Introduit dans : v21.10.0
Cette fonction est dépréciée et ne peut être utilisée que si le paramètre allow_deprecated_snowflake_conversion_functions est activé. Elle sera supprimée ultérieurement.Veuillez utiliser la fonction dateTime64ToSnowflakeID à la place.
Convertit un DateTime64 en premier Snowflake ID correspondant à l’instant indiqué. Syntaxe
Arguments Valeur renvoyée Renvoie la valeur d’entrée convertie en premier Snowflake ID correspondant à cet instant. Int64 Exemples Exemple d’utilisation
Query
Response

dateTime64ToSnowflakeID

Introduit dans : v24.6.0 Convertit une valeur DateTime64 en Snowflake ID initial à l’instant donné. Syntaxe
Arguments
  • value — Date et heure. 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*
Valeur renvoyée Valeur d’entrée convertie en UInt64 Exemples simple
Query
Response

dateTimeToSnowflake

Introduit dans : v21.10.0
Cette fonction est dépréciée et ne peut être utilisée que si le paramètre allow_deprecated_snowflake_conversion_functions est activé. Cette fonction sera supprimée ultérieurement.Veuillez utiliser la fonction dateTimeToSnowflakeID à la place.
Convertit une valeur DateTime en premier Snowflake ID à l’instant donné. Syntaxe
Arguments Valeur renvoyée Renvoie la valeur d’entrée sous forme du premier Snowflake ID à cet instant. Int64 Exemples Exemple d’utilisation
Query
Response

dateTimeToSnowflakeID

Introduit dans : v24.6.0 Convertit une valeur DateTime en premier Snowflake ID pour l’instant donné. Syntaxe
Arguments
  • value — Date avec heure. 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*
Valeur renvoyée Valeur d’entrée convertie en UInt64 Exemples simple
Query
Response

dateTimeToUUIDv7

Introduit dans : v25.8.0 Convertit une valeur DateTime en UUIDv7 pour l’instant donné. Voir la section “génération d’UUIDv7” pour plus de détails sur la structure des UUID, la gestion du compteur et les garanties de concurrence.
En septembre 2025, les UUID version 7 sont encore à l’état de brouillon et leur structure pourrait évoluer à l’avenir.
Syntaxe
Arguments Valeur renvoyée Renvoie un UUIDv7. UUID Exemples Exemple d’utilisation
Query
Response
plusieurs UUID pour un même horodatage
Query
Response

generateSnowflakeID

Introduit dans : v24.6.0 Génère un 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” pour plus de détails sur l’implémentation. Syntaxe
Arguments
  • expr — Une expression arbitraire utilisée pour contourner l’élimination des sous-expressions communes 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. Facultatif.
Valeur renvoyée Renvoie le Snowflake ID. UInt64 Exemples Exemple d’utilisation
Query
Response
Plusieurs Snowflake ID générés par ligne
Query
Response
Avec une expression et un ID de machine
Query
Response

generateUUIDv4

Introduite dans : v1.1.0 Génère un UUID de version 4. Syntaxe
Arguments
  • expr — Facultatif. Expression arbitraire utilisée pour contourner l’élimination des sous-expressions communes 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 Exemples Exemple d’utilisation
Query
Response
Élimination des sous-expressions communes
Query
Response

generateUUIDv7

Introduit dans : v24.5.0 Génère un UUID de version 7. Voir la section “Génération d’UUIDv7” pour plus de détails sur la structure des UUID, la gestion du compteur et les garanties en cas de génération concurrente.
En septembre 2025, les UUID de version 7 sont encore à l’état de projet, et leur structure pourrait évoluer à l’avenir.
Syntaxe
Arguments
  • expr — Facultatif. Expression arbitraire utilisée pour contourner l’élimination des sous-expressions communes 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
Valeur renvoyée Renvoie un UUIDv7. UUID Exemples Exemple d’utilisation
Query
Response
Élimination de sous-expressions communes
Query
Response

snowflakeIDToDateTime

Introduite dans : v24.6.0 Renvoie le composant d’horodatage d’un Snowflake ID sous la forme d’une valeur de type DateTime. Syntaxe
Arguments
  • value — Snowflake ID. UInt64
  • 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*
  • time_zone — Facultatif. Fuseau horaire. La fonction interprète time_string selon le fuseau horaire. String
Valeur renvoyée Renvoie le composant d’horodatage de value. DateTime Exemples Exemple d’utilisation
Query
Response

snowflakeIDToDateTime64

Introduit dans : v24.6.0 Renvoie le composant d’horodatage d’un Snowflake ID sous forme d’une valeur de type DateTime64. Syntaxe
Arguments
  • value — Snowflake ID. UInt64
  • 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*
  • time_zone — Facultatif. Fuseau horaire. La fonction interprète time_string selon le fuseau horaire. 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 Exemples Exemple d’utilisation
Query
Response

snowflakeToDateTime

Introduit dans : v21.10.0
Cette fonction est obsolète et ne peut être utilisée que si le paramètre allow_deprecated_snowflake_conversion_functions est activé. Cette fonction sera supprimée dans une future version.Veuillez utiliser la fonction snowflakeIDToDateTime à la place.
Extrait le composant d’horodatage d’un Snowflake ID au format DateTime. Syntaxe
Arguments
  • value — Snowflake ID. Int64
  • time_zone — Facultatif. Fuseau horaire. La fonction interprète time_string en fonction du fuseau horaire. String
Valeur renvoyée Renvoie le composant d’horodatage de value. DateTime Exemples Exemple d’utilisation
Query
Response

snowflakeToDateTime64

Introduit dans : v21.10.0
Cette fonction est obsolète et ne peut être utilisée que si le paramètre allow_deprecated_snowflake_conversion_functions est activé. Cette fonction sera supprimée à l’avenir.Veuillez utiliser la fonction snowflakeIDToDateTime64 à la place.
Extrait le composant d’horodatage d’un Snowflake ID au format DateTime64. Syntaxe
Arguments
  • value — Snowflake ID. Int64
  • time_zone — Facultatif. Fuseau horaire. La fonction interprète time_string en fonction du fuseau horaire. String
Valeur renvoyée Renvoie le composant d’horodatage de value. DateTime64(3) Exemples Exemple d’utilisation
Query
Response

toUUIDOrDefault

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
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 Exemples Une conversion réussie renvoie l’UUID obtenu
Query
Response
En cas d’échec de conversion, renvoie l’UUID par défaut
Query
Response

toUUIDOrNull

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, 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
Arguments
  • x — Une représentation sous forme de chaîne d’un UUID. String
Valeur renvoyée Renvoie une valeur UUID en cas de réussite, sinon NULL. UUID ou NULL Exemples Exemples d’utilisation
Query
Response
Dernière modification le 2 juillet 2026