UUIDカラムとtimeuuidカラム
ネイティブ関数をUUIDカラムとtimeuuidカラムに使用して、一意識別子の値を書き込みます。
uuid()関数はパラメーターが不要で、INSERTまたはSET文での使用に適したランダムなタイプ4のUUIDを生成します。
いくつかのtimeuuid()関数は、timeuuid()型と併用するために設計されています。
dateOf()SELECT句で使用するこの関数は、結果セットに含まれているtimeuuidカラムのタイムスタンプを抽出します。この関数は抽出されたタイムスタンプを日付として返します。生のタイムスタンプを取得するには、unixTimestampOf()を使用します。now()コーディネーター・ノードでは、文が実行されたときに、新しい一意の
timeuuidをミリ秒単位で生成します。timeuuidのタイムスタンプの部分は、UTC(協定世界時)標準に一致します。この方法は値の挿入に役立ちます。now()で返される値は一意であることが保証されます。minTimeuuid()およびmaxTimeuuid()条件用の時間の構成要素を引数として受け取ってUUID相当の結果を返します。例:SELECT * FROM myTable WHERE t > maxTimeuuid('2013-01-01 00:05+0000') AND t < minTimeuuid('2013-02-02 10:00+0000')前述のminTimeuuid/maxTimeuuidの例では、
timeuuidカラムのtが厳密に2013-01-01 00:05+0000以降で、かつ、2013-02-02 10:00+0000以前である行をすべて選択します。t >= maxTimeuuid('2013-01-01 00:05+0000')では、2013-01-01 00:05+0000ちょうどに生成されたtimeuuidは選択されず、基本的にt > maxTimeuuid('2013-01-01 00:05+0000')と等しくなります。minTimeuuidおよびmaxTimeuuid関数で返される値は、RFC 4122に規定されている時間ベースのUUID生成プロセスに従っていないため、真正のUUIDではありません。これらの関数の結果は、now()関数とは異なり決定論的です。unixTimestampOf()SELECT句で使用するこの関数は、結果セットに含まれているtimeuuidカラムのミリ秒単位のタイムスタンプを抽出します。値を、生の64ビット整数タイムスタンプとして返します。
timeuuid関数とタイムスタンプ関数をサポートしています。これらの関数は、INSERT、UPDATE、およびSELECT文で使用できます。toDate(timeuuid)timeuuidをYYYY-MM-DD 形式のdateに変換します。toTimestamp(timeuuid)timeuuidをタイムスタンプ形式に変換します。toUnixTimestamp(timeuuid)timeuuidをUNIXタイムスタンプ形式に変換します。toDate(timestamp)timestampをYYYY-MM-DD 形式のdateに変換します。toUnixTimestamp(timestamp)timestampをUNIXタイムスタンプ形式に変換します。
toTimestamp(date)dateをタイムスタンプ形式に変換します。toUnixTimestamp(date)dateをUNIXタイムスタンプ形式に変換します。
CREATE TABLE sample_times (a int, b timestamp, c timeuuid, d bigint, PRIMARY KEY (a,b,c,d));
INSERT INTO sample_times (a,b,c,d) VALUES (1, toUnixTimestamp(now()), 50554d6e-29bb-11e5-b345-feff819cdc9f, toTimestamp(now()));
SELECT toDate(c) FROM sample_times;
