UUID and timeuuid
The database distributes data in a cluster based on the partition key.
The uuid (universally unique id) type contains a unique value.
Use this type as part of a partition key to uniquely identify a partition in a table.
Within a partition, the database orders rows by clustering columns.
A timeuuid is a Type 1 UUID that includes the time of its generation.
Order rows by time within a partition by using timeuuid values in clustering columns.
See the literal format for uuid and timeuuids in valid literals.
UUID function
You can use the UUID() function in a CQL statement to generates a random Type 4 UUID suitable for use in INSERT or SET statements.
It takes no parameters.
Timeuuid functions
Several timeuuid() functions exist for use with the timeuuid type:
- dateOf()
-
Used in a
SELECTclause, this function extracts the timestamp of atimeuuidcolumn in a result set. This function returns the extracted timestamp as a date. UseunixTimestampOf()to get a raw timestamp. - now()
-
In the coordinator node, generates a new unique
timeuuidin milliseconds when the statement is executed. The timestamp portion of thetimeuuidconforms to the UTC (Universal Time) standard. This method is useful for inserting values. The value returned bynow()is guaranteed to be unique. - minTimeuuid() and maxTimeuuid()
-
Returns a UUID-like result given a conditional time component as an argument. For example:
SELECT a, b, toDate(c), toDate(d) FROM cycling.sample_times WHERE c > maxTimeuuid('2013-01-01 00:01+0000') AND c < minTimeuuid('2013-01-02 10:00+0000') ALLOW FILTERING;The preceding min/maxTimeuuid example selects all rows where the
timeuuidcolumn,t, is strictly later than2013-01-01 00:01+0000but strictly earlier than2013-01-02 10:00+0000. Thet >= maxTimeuuid('2013-01-01 00:01+0000')doesn’t select atimeuuidgenerated exactly at2013-01-01 00:01+0000, and it is essentially equivalent tot > maxTimeuuid('2013-01-01 00:01+0000').The values returned by
minTimeuuidandmaxTimeuuidfunctions aren’t true UUIDs because the values don’t conform to the Time-Based UUID generation process. The results of these functions are deterministic, unlike thenow()function. - unixTimestampOf()
-
Used in a
SELECTclause, this function extracts the timestamp in milliseconds of atimeuuidcolumn in a result set. Returns the value as a raw, 64-bit integer timestamp.
Timestamp and timeuuid conversion functions
The following functions support some additional timeuuid and timestamp functions to manipulate dates.
These functions can be used in INSERT, UPDATE, and SELECT statements:
- toDate(timeuuid)
-
Converts
timeuuidtodatein YYYY-MM-DD format. - toTimestamp(timeuuid)
-
Converts
timeuuidtotimestampformat. - toUnixTimestamp(timeuuid)
-
Converts
timeuuidtoUNIX timestampformat. - toDate(timestamp)
-
Converts
timestamptodatein YYYY-MM-DD format.Example:
SELECT a, b, toDate(c), toDate(d) FROM cycling.sample_times WHERE c > maxTimeuuid('2013-01-01 00:01+0000') AND c < minTimeuuid('2013-01-02 10:00+0000') ALLOW FILTERING; - toUnixTimestamp(timestamp)
-
Converts timestamp to UNIX timestamp format.
Examples:
INSERT INTO cycling.sample_times ( a, b, c, d ) VALUES ( 1, toUnixTimestamp(now()), now(), toTimestamp(now()) ); INSERT INTO cycling.sample_times ( a, b, c, d ) VALUES ( 2, toUnixTimestamp(now()), maxTimeuuid('2013-01-02 00:01+0000'), toTimestamp(now()) ); INSERT INTO cycling.sample_times ( a, b, c, d ) VALUES ( 3, toUnixTimestamp(now()), maxTimeuuid('2013-01-03 00:03+0000'), toTimestamp(now()) ); INSERT INTO cycling.sample_times ( a, b, c, d ) VALUES ( 4, toUnixTimestamp(now()), maxTimeuuid('2013-01-04 00:05+0000'), toTimestamp(now()) ); - toTimestamp(date)
-
Converts
datetotimestampformat. - toUnixTimestamp(date)
-
Converts
datetoUNIX timestampformat.