Domanda Come ottenere il timestamp attuale con CQL mentre si utilizza Command Line?


Sto cercando di inserire nella mia tabella CQL dalla riga di comando. Sono in grado di inserire tutto. Ma mi chiedo se ho una colonna timestamp, quindi come posso inserire nella colonna timestamp dalla riga di comando? Fondamentalmente, voglio inserire il timestamp attuale ogni volta che sto inserendo nella mia tabella CQL -

Attualmente sto codificando il timestamp ogni volta che sto inserendo la mia tabella CQL sotto -

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);

C'è un modo per ottenere il timestamp corrente usando alcune funzioni predefinite in CQL in modo tale che mentre si inserisce nella tabella sopra, posso usare quel metodo per ottenere il timestamp corrente e quindi inserirlo nella tabella sopra?


48
2017-10-27 20:54


origine


risposte:


È possibile utilizzare le funzioni timeuuid now() e dateof() (o nelle versioni successive di Cassandra, toTimestamp()), per esempio.,

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

Il now la funzione non accetta argomenti e genera un nuovo timeuuid univoco (nel momento in cui viene eseguita l'istruzione che lo utilizza). Il dateOf la funzione accetta un argomento timeuuid ed estrae il timestamp incorporato. (Tratto dalla documentazione di CQL su funzioni timeuuid).

Cassandra> = 2.2.0-rc2

dateof() è stato deprecato in Cassandra 2.2.0-rc2. Per le versioni successive dovresti sostituire il suo uso con toTimestamp(), come segue:

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

92
2017-10-28 09:09



Nella nuova versione di cassandra potrei usare toTimestamp(now())e nota questa funzione dateof è deprecato.

per esempio

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

13
2018-02-04 18:50