programing

명령 줄을 사용하는 동안 CQL로 현재 타임 스탬프를 얻는 방법은 무엇입니까?

firstcheck 2021. 1. 18. 08:04
반응형

명령 줄을 사용하는 동안 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 인수를 사용하고 포함 된 타임 스탬프를 추출합니다. ( timeuuid 함수 에 대한 CQL 문서에서 발췌 ).

카산드라> = 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()));

의 새 버전에서는 cassandra사용할 수 있으며 toTimestamp(now())기능 dateof더 이상 사용되지 않습니다 .

예 :

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

참조 URL : https://stackoverflow.com/questions/19623432/how-to-get-current-timestamp-with-cql-while-using-command-line

반응형