금고 방법은 시간 소인을 반환하고 클라이언트 측에서는 분석합니다.
기본적으로 카산드라는이 문제를 해결할 수있는 기능이 없습니다. 그러나이를 수행하기 위해 사용자 정의 함수 (UDF)를 작성할 수 있습니다.
먼저 사용자 정의 함수는 기본적으로 사용 불가능합니다. cassandra.yaml에서 설정을 조정하고 노드를 다시 시작해야합니다.
enable_user_defined_functions=true
참고 :이 설정은 이유 때문에 기본값이됩니다. Cassandra 3.x는 악의적 인 코드로부터 보호 할 수있는 몇 가지 안전 장치가 있지만, 필요할 때와 수행중인 것을 알지 않는 한이 코드를 꺼 두는 것이 좋습니다. 그렇다면 정의 된 UDF를 계속 관찰하고 싶을 것입니다.
지금은 cqlsh 내에서 자바를 사용하여 내 함수를 만듭니다 :
이
[email protected]:stackoverflow> CREATE OR REPLACE FUNCTION year (input DATE)
RETURNS NULL ON NULL INPUT RETURNS TEXT
LANGUAGE java AS 'return input.toString().substring(0,4);';
참고 현재 날짜/시간 조회하는 방법 (및 유형)의 수 있다는 것을 :
[email protected]:stackoverflow> SELECT todate(now()) as date,
totimestamp(now()) as timestamp, now() as timeuuid FROm system.local;
date | timestamp | timeuuid
------------+---------------------------------+-------------------------------------
2017-12-20 | 2017-12-20 21:18:37.708000+0000 | 58167cc1-e5cb-11e7-9765-a98c427e8248
(1 rows)
가
SELECT stackoverflow.year(todate(now())) as year FROm system.local;
year
------
2017
(1 rows)
:
단지 만 년을 되돌리려면, 나는 todate(now())
열에 내 year
함수를 호출 할 수 있습니다