如何在使用命令行时使用CQL获取当前时间戳?

我试图从命令行插入到我的CQL表中。 我能够插入一切。 但我想知道如果我有一个时间戳列,那么我怎么能插入到时间戳列从命令行? 基本上,我想插入当前的时间戳,每当我插入到我的CQL表 –

目前,每当我插入到我的下面的CQL表中时,我都对时间戳进行了硬编码 –

CREATE TABLE TEST (ID TEXT, NAME TEXT, VALUE TEXT, LAST_MODIFIED_DATE TIMESTAMP, PRIMARY KEY (ID)); INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE) VALUES ('1', 'elephant', 'SOME_VALUE', 1382655211694); 

有什么办法可以使用CQL中的一些预定义的函数获取当前时间戳,以便在插入到上面的表中时,我可以使用该方法获取当前时间戳,然后插入到上面的表中?

你可以使用timeuuid函数now()dateof() (或者在更高版本的Cassandra, toTimestamp() )中,例如,

 INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE) VALUES ('2', 'elephant', 'SOME_VALUE', dateof(now())); 

now函数不带任何参数,并生成一个新的唯一的timeuuid(在使用它的语句被执行的时候)。 dateOf函数使用timeuuid参数并提取embedded的时间戳。 (从timeuuid函数的CQL文档中获取 )。

Cassandra> = 2.2.0-rc2

dateof()在Cassandra 2.2.0-rc2中被弃用。 对于更高版本,您应该使用toTimestamp()replace它的使用,如下所示:

 INSERT INTO TEST (ID, NAME, VALUE, LAST_MODIFIED_DATE) VALUES ('2', 'elephant', 'SOME_VALUE', toTimestamp(now())); 

在新版本的cassandra可以使用toTimestamp(now()) ,并且注意不build议使用 dateof函数。

例如

 insert into dummy(id, name, size, create_date) values (1, 'Eric', 12, toTimestamp(now()));