有可能在卡桑德拉插入纪元时间吗



表的模式:

CREATE TABLE student(
name text,
id int,
class int,
logintime timeuuid,
subject text
PRIMARY KEY ((cust_sub_id, group_id), level, eventtime));

在学生表中插入数据时:

INSERT INTO student(name, id, class, logintime, subject) VALUES ( 'xyz', 10, 12, 242aa080-9e6f-11e5-b62b-903c9927ffc2, 'maths');

它运行良好。但是可以插入划时代时间/日期时间而不是uuid,并自动保存为cassandra表中的uuid格式?

类似于:

INSERT INTO student(name, id, class, logintime, subject) VALUES ( 'xyz', 10, 12, 1449663555, 'maths');

如果不可能,那么如何在scala中将划时代时间转换为uuid?

或者如何修改现有的uuid增加1天意味着[exitingDate+1.day]??

您可以使用timeuuid数据类型。它看起来和尝起来都像常规的UUID,但由两部分组成:时间和节点特定的随机数据。它可以像这样使用:

INSERT INTO student(name, id, class, logintime, subject) VALUES ( 'xyz', 10, 12, now(), 'maths');

Yuo可以使用dateOf()函数提取TimeUUID的时间部分:

SELECT dateOf(logintime) from student where name='xyz';

BTW还有writetime()函数,它可以应用于任何(非PK)列值,以获得实际的列写入时间戳。

最新更新