как конвертировать дату и время в метку времени на cqlsh - PullRequest
0 голосов
/ 18 мая 2018

Я новичок в Кассандре и особенно в синтаксисе cql.Но у меня есть созданный столбец с меткой времени, который возвращает мне дату и время, как это '2018-05-18 03: 08: 58.246000 + 0000', но где я фильтрую по созданному, я получаю эту ошибку

InvalidRequest: Error froim server: code=2200 [Invalid query] message="Unable to coerce '2018-05-18 03:08:58.246000+0000' to formatted date (long)"

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

как преобразовать дату и время в метку времени в cqlsh в предложении where?

1 Ответ

0 голосов
/ 18 мая 2018

Хотя Cassandra хранит дроби меток времени, используя формат .ffffff , определенный стандартом ISO 8601, как вы упомянули.

cqlsh:test_keyspace> select * from timestamp_table ;

timestamp                       | other_field
---------------------------------+---------------
2018-05-18 03:08:58.246000+0000 | Other content
2018-05-18 03:08:58.000000+0000 | Other content

При взаимодействии с базой данных (например, INSERT, SELECT, ...) необходимо использовать формат .fff , например, так:

cqlsh:test_keyspace> select * from timestamp_table WHERE timestamp='2018-05-18 03:08:58.123+0000';

timestamp                       | other_field
---------------------------------+---------------
2018-05-18 03:08:58.123000+0000 | Other content

В противном случае вы получите упомянутую ошибку.

Ошибка при чтении

 cqlsh:test_keyspace> select * from timestamp_table WHERE timestamp='2018-05-18 03:08:58.123000+0000';
InvalidRequest: Error from server: code=2200 [Invalid query] message="Unable to coerce '2018-05-18 03:08:58.123000+0000' to a formatted date (long)"

Ошибка при записи

cqlsh:test_keyspace> INSERT INTO timestamp_table (timestamp , other_field ) VALUES ( '2018-05-18 03:08:58.123456+0000', 'Other content');
InvalidRequest: Error from server: code=2200 [Invalid query] message="Unable to coerce '2018-05-18 03:08:58.123456+0000' to a formatted date (long)"
...