UUIDsを扱う関数
UUIDv7 の生成
unix_ts_ms) について、カウンターはランダムな値から開始され、タイムスタンプが変わるまで、新しい UUID が生成されるたびに 1 ずつ増加します。カウンターがオーバーフローした場合は、タイムスタンプフィールドが 1 増加し、カウンターは新しいランダムな開始値にリセットされます。
UUID 生成関数は、あるタイムスタンプ内のカウンターフィールドが、同時実行中のすべてのスレッドおよびクエリにわたる関数呼び出し全体で単調増加することを保証します。
Snowflake ID の生成
unix_ts_ms) に対して、カウンターは 0 から始まり、タイムスタンプが変わるまで新しい Snowflake ID が生成されるたびに 1 ずつ増加します。カウンターがオーバーフローした場合は、タイムスタンプのフィールドが 1 増やされ、カウンターは 0 にリセットされます。
生成される Snowflake ID は、UNIX エポック である 1970-01-01 を基準としています。Snowflake ID の エポック には標準や推奨事項はありませんが、他のシステムの実装では別の エポック が使われている場合があります。たとえば、Twitter/X (2010-11-04) や Mastodon (2015-01-01) です。
UUIDNumToString
variant でそのフォーマットを任意に指定できます (デフォルトは Big-endian) 。テキスト形式の 36 文字の文字列を返します。
構文
binary— UUID のバイナリ表現。FixedString(16)variant— RFC4122 で規定されたバリアント。1 =Big-endian(デフォルト) 、2 =Microsoft。(U)Int*
String
例
使用例
Query
Response
Query
Response
UUIDStringToNum
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 形式の36文字の文字列を受け取り、そのバイナリ表現として FixedString(16) を返します。必要に応じて variant でフォーマットを指定でき、デフォルトは Big-endian です。
構文
string— 36 文字の文字列、または固定長文字列。StringまたはFixedString(36)variant— RFC4122 で規定される バリアント。1 =Big-endian(デフォルト) 、2 =Microsoft。(U)Int*
string のバイナリ表現を返します。FixedString(16)
例
使用例
Query
Response
Query
Response
UUIDToNum
variant で指定でき、デフォルトは Big-endian です。
この関数は、2 つの個別の関数 UUIDStringToNum(toString(uuid)) の呼び出しを置き換えるもので、UUID からバイトを抽出するために UUID を文字列へ中間変換する必要がありません。
構文
uuid— UUID。StringまたはFixedStringvariant— RFC4122 で規定されているバリアント。1 =Big-endian(デフォルト) 、2 =Microsoft。(U)Int*
FixedString(16)
例
使用例
Query
Response
Query
Response
UUIDv7ToDateTime
1970-01-01 00:00:00.000を返します。DateTime64(3)
例
使用例
Query
Response
Query
Response
dateTime64ToSnowflake
value— 日時。DateTime64
Int64
例
使用例
Query
Response
dateTime64ToSnowflakeID
value— 日時。DateTime64epoch— 1970-01-01 からの経過ミリ秒で表した Snowflake ID のエポック。デフォルトは 0 (1970-01-01) です。Twitter/X のエポック (2015-01-01) を使用する場合は、1288834974657 を指定します。UInt*
UInt64 に変換された入力値
例
simple
Query
Response
dateTimeToSnowflake
value— 日時。DateTime
Int64
例
使用例
Query
Response
dateTimeToSnowflakeID
value— 日時。DateTimeepoch— 1970-01-01 からの経過ミリ秒で表した Snowflake ID の epoch。デフォルトは 0 (1970-01-01) です。Twitter/X の epoch (2015-01-01) の場合は、1288834974657 を指定します。UInt*
UInt64 に変換された入力値
例
simple
Query
Response
dateTimeToUUIDv7
2025年9月時点では、バージョン 7 UUID はドラフト段階にあり、今後レイアウトが変更される可能性があります。
value— 日時。DateTime
UUID
例
使用例
Query
Response
Query
Response
generateSnowflakeID
generateSnowflakeID は、同時実行中のスレッドおよびクエリ全体にわたるすべての関数呼び出しにおいて、タイムスタンプ内のカウンター フィールドが単調増加することを保証します。
実装の詳細については、“Snowflake ID generation” セクションを参照してください。
構文
expr— 関数が1つのクエリ内で複数回呼び出される場合に、共通部分式除去を回避するための任意の式です。この式の値は、返される Snowflake ID には影響しません。省略可能です。 -machine_id— マシン ID。下位 10 ビットが使用されます。Int64。省略可能です。
UInt64
例
使用例
Query
Response
Query
Response
Query
Response
generateUUIDv4
expr— 省略可。関数が1つのクエリ内で複数回呼び出される場合に、共通部分式除去を回避するために使われる任意の式です。式の値は、返される UUID には影響しません。
UUID
例
使用例
Query
Response
Query
Response
generateUUIDv7
2025 年 9 月時点では、バージョン 7 UUID はドラフト段階にあり、今後レイアウトが変更される可能性があります。
UUID
例
使用例
Query
Response
Query
Response
snowflakeIDToDateTime
value— Snowflake ID。UInt64epoch— 省略可能。1970-01-01 からのミリ秒単位で表した Snowflake ID のエポックです。デフォルトは 0 (1970-01-01) です。Twitter/X のエポック (2015-01-01) の場合は、1288834974657 を指定します。UInt*time_zone— 省略可能。タイムゾーン。関数はtime_stringをこのタイムゾーンに従って解析します。String
value のタイムスタンプ部分を返します。DateTime
例
使用例
Query
Response
snowflakeIDToDateTime64
value— Snowflake ID。UInt64epoch— 省略可能。1970-01-01 からの経過ミリ秒で表される Snowflake ID のエポック。デフォルトは 0 (1970-01-01) です。Twitter/X のエポック (2015-01-01) の場合は、1288834974657 を指定します。UInt*time_zone— 省略可能。タイムゾーン。この関数は、タイムゾーンに従ってtime_stringを解析します。String
value のタイムスタンプ部分を、scale = 3、つまりミリ秒精度の DateTime64 として返します。DateTime64
例
使用例
Query
Response
snowflakeToDateTime
value のタイムスタンプ部分を返します。DateTime
例
使用例
Query
Response
snowflakeToDateTime64
value のタイムスタンプ部分を返します。DateTime64(3)
例
使用例
Query
Response
toUUIDOrDefault
string— UUID に変換する 36 文字の文字列、または FixedString(36)。 -default— 最初の引数を UUID 型に変換できない場合に返される UUID 値。
UUID
例
変換に成功した場合は、パースされた UUID が返されます
Query
Response
Query
Response
toUUIDOrNull
UUID 型の値に変換します。エラーが発生した場合は NULL を返します。
toUUID と同様ですが、変換エラー時に例外をスローする代わりに NULL を返します。
サポートされる引数:
- 標準形式 (8-4-4-4-12 桁の16進数) の UUID の文字列表現。
- ハイフンなし (32 桁の16進数) の UUID の文字列表現。
NULL を返します) :
- 無効な文字列形式。
- 文字列以外の型。
- 形式が不正な UUID。
x— UUIDの文字列表現。String
NULL を返します。UUID または NULL
例
使用例
Query
Response