web-dev-qa-db-fra.com

Comment obtenir l'horodatage actuel avec CQL en utilisant la ligne de commande?

J'essaie d'insérer dans ma table CQL à partir de la ligne de commande. Je suis capable de tout insérer. Mais je me demande si j'ai une colonne timestamp, comment puis-je l'insérer dans la colonne timestamp à partir de la ligne de commande? En gros, je veux insérer l’horodatage actuel chaque fois que j’insère dans ma table CQL -

Actuellement, je suis en train de coder l’horodatage lors de l’insertion dans ma table CQL ci-dessous -

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

Existe-t-il un moyen d'obtenir l'horodatage actuel à l'aide de fonctions prédéfinies dans CQL afin que, lors de l'insertion dans la table ci-dessus, je puisse utiliser cette méthode pour obtenir l'horodatage actuel, puis l'insérer dans la table ci-dessus?

52
user2467545

Vous pouvez utiliser les fonctions temporelles now() et dateof() (ou dans les versions ultérieures de Cassandra, toTimestamp()), par exemple,

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

La fonction now ne prend aucun argument et génère un nouveau timeuuid unique (au moment où l'instruction qui l'utilise est exécutée). La fonction dateOf prend un argument timeuuid et extrait l'horodatage incorporé. (Extrait de la documentation CQL sur fonctions timeuuid ).

Cassandra> = 2.2.0-rc2

dateof() est obsolète en Cassandra 2.2.0-rc2. Pour les versions ultérieures, remplacez son utilisation par toTimestamp(), comme suit:

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

Dans la nouvelle version de cassandra, vous pouvez utiliser toTimestamp(now()), et notez que la fonction dateof est obsolète.

par exemple

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