【发布时间】:2018-10-21 11:52:12
【问题描述】:
如何从 Java 中的日期创建 Cassandra TimeUUID?
我知道如何使用toDate(timeuuid) 函数做相反的事情,但是我们如何做相反的事情呢?
类似于QueryBuilder.now() 函数,除了我不希望现在作为日期。我需要一个较早的日期。
【问题讨论】:
标签: java cassandra cql datastax-java-driver
如何从 Java 中的日期创建 Cassandra TimeUUID?
我知道如何使用toDate(timeuuid) 函数做相反的事情,但是我们如何做相反的事情呢?
类似于QueryBuilder.now() 函数,除了我不希望现在作为日期。我需要一个较早的日期。
【问题讨论】:
标签: java cassandra cql datastax-java-driver
有minTimeuuid() 和maxTimeuuid() 函数可以转换与timeuuid 兼容的类UUID 值。
cqlsh:test>create table aaa (id timeuuid primary key, t text);
cqlsh:test> insert into aaa(id,t) values(minTimeuuid('2018-05-11 10:00+0000'), 't');
cqlsh:test> SELECT * from aaa;
id | t
--------------------------------------+---
1119d000-5502-11e8-8080-808080808080 | t
更多详情请见documentation。
更新:也可以通过 QueryBuilder 使用 Java 中的这些函数,如下所示:
QueryBuilder.select().fcall("minTimeuuid", your-value)...
【讨论】:
UUIDs.startOf(new Date().getTime())
应该从 Java 中的给定日期返回 UUID v4
【讨论】: