У меня есть эта таблица
user_authentication_token (
token_id uuid,
user_id uuid,
email text,
expiration_time timestamp,
is_sign_up boolean,
PRIMARY KEY ((token_id, user_id, email, expiration_time))
и у меня есть эти данные в таблице
token_id | user_id | email | expiration_time | is_sign_up
--------------------------------------+--------------------------------------+-------------------------+---------------------------------+------------
98b0456a-05b2-4aca-a6c7-6a1f382e19aa | b284d51d-efbb-4204-b342-a2486029a5c5 | manu.chadha@hotmail.com | 2018-09-01 09:40:59.634000+0000 | True
Но я не могу запросить его.
select * from user_authentication_token where token_id=98b0456a-05b2-4aca-a6c7-6a1f382e19aa and user_id=b284d51d-efbb-4204-b342-a2486029a5c5 and email='manu.chadha@hotmail.com' and expiration_time='2018-09-01 09:40:59.634000+0000';
Ошибка - InvalidRequest: Error from server: code=2200 [Invalid query] message="Unable to coerce '2018-09-01 09:40:59.634000+0000' to a formatted date (long)"
Что я делаю не так?
Я вставил строку, используя Cassandra Java Datastax
драйвер и следующий код
def insertValues(tableName:String, model:UserToken):Insert = {
QueryBuilder.insertInto(tableName).value("token_id",model.tokenId)
.value("email",model.email)
.value("user_id",model.userId)
.value("expiration_time",model.expirationTime.getMillis())
.value("is_sign_up",model.isSignUp)
.ifNotExists(); }}
Интересно, что отметка времени хранится как long
, но cqlsh
показывает ее в читаемом формате. Возможно, мне нужно снова преобразовать его в long
, но как мне это сделать?