Как написать запрос, используя тип данных DATE на языке запросов Cassandra? - PullRequest
1 голос
/ 06 ноября 2019

Я создал таблицу

create table testdates2(dates date primary key,ate text);

insert into testdates2(2018-04,'nov');

Я получаю эту ошибку

SyntaxException: строка 1:23 нет жизнеспособной альтернативы на входе '2018' (вставить в testdates2 ([2018] ...)

1 Ответ

1 голос
/ 06 ноября 2019

Формат yyyy-mm-dd означает, что вы должны всегда играть в день тоже. Вот пример использования вашей схемы, которая вставит строку для 1 апреля 2018 года. Я выбрал случайное значение для столбца ate.

cqlsh> insert into testdates2 (dates, ate) VALUES ('2018-04-01', 'Soup');
cqlsh> select * from testdates2;

 dates      | ate
------------+------
 2018-04-01 | Soup

(1 rows)

Более подробную документацию по использованию значений даты с Cassandra можно найти в Документация DataStax по теме.

Редактировать на основе комментария относительно метки времени против даты.

timestamp имеет более высокое разрешение, можетуказать точную секунду, когда произошло событие, в то время как date может указывать на день, когда произошло событие.

Допустим, я хочу точно знать, в какую секунду был съеден этот суп, я могу использовать тип отметки времени вместотип даты.

ALTER TABLE testdates2 ADD time_eaten timestamp;
insert into testdates2 (dates, ate, time_eaten) VALUES ('2018-04-01', 'Soup', 1522576800);

1522576800 и 2019-04-01 представляют 1 апреля 2018 года, но отметка времени также указывает, что событие произошло в 10 часов утра.

...