I am trying to insert into my CQL table from the command line. I am able to insert everything. But I am wondering if I have a timestamp column, then how can I insert into timestamp column from the command line? Basically, I want to insert current timestamp whenever I am inserting into my CQL table –
Currently, I am hardcoding the timestamp whenever I am inserting into my below CQL table –
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);
Is there any way to get the current timestamp using some predefined functions in CQL so that while inserting into above table, I can use that method to get the current timestamp and then insert into above table?
Best Answer
You can use the timeuuid functions
now()
anddateof()
(or in later versions of Cassandra,toTimestamp()
), e.g.,The
now
function takes no arguments and generates a new unique timeuuid (at the time where the statement using it is executed). ThedateOf
function takes a timeuuid argument and extracts the embedded timestamp. (Taken from the CQL documentation on timeuuid functions).Cassandra >= 2.2.0-rc2
dateof()
was deprecated in Cassandra 2.2.0-rc2. For later versions you should replace its use withtoTimestamp()
, as follows: