Подтвердить что ты не робот

Как получить текущую временную метку с CQL при использовании командной строки?

Я пытаюсь вставить в свою таблицу CQL из командной строки. Я могу вставить все. Но мне интересно, есть ли у меня столбец timestamp, тогда как я могу вставить в столбце timestamp из командной строки? В принципе, я хочу вставить текущую временную метку всякий раз, когда я вставляю в свою таблицу 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, чтобы при вставке в таблицу выше я могу использовать этот метод для получения текущей метки времени и затем вставить в таблицу выше?

4b9b3361

Ответ 1

Вы можете использовать функции 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 и извлекает встроенную метку времени. (Взято из документации CQL на функции timeuuid).

Кассандрa >= 2.2.0-rc2

dateof() устарел в Cassandra 2.2.0-rc2. Для более поздних версий следует заменить его на toTimestamp() следующим образом:

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

Ответ 2

В новой версии cassandra можно использовать toTimestamp(now()), и обратите внимание, что функция dateof устарела.

например

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