2016-10-24 7 views
3

У меня есть таблица, созданный следующим образом:Установка метки времени в Кассандре

CREATE TABLE my_table (
    date text, 
    id text, 
    time timestamp, 
    value text, 
    PRIMARY KEY (id)); 

CREATE INDEX recordings_date_ci ON recordings (date); 

Я могу просто добавить новую строку в таблицу, используя следующий код узла:

const cassandra = require('cassandra-driver'); 
const client = new cassandra.Client({ contactPoints: ['localhost'], keyspace: 'my_keyspace'}); 

const query = 'INSERT INTO my_table (date, id, time, url) VALUES (?, ?, ?, ?)'; 
client.execute(query, ['20160901', '0000000000', '2016-09-01 00:00:00+0000', 'random url'], function(err, result) { 
    if (err){ 
    console.log(err); 
    } 
    console.log('Insert row ended:' + result); 
}); 

Однако, Я получаю следующее сообщение об ошибке:

'Error: Expected 8 or 0 byte long for date (24)

Когда я изменить метку времени EPOC:

client.execute(query, ['20160901', '0000000000', 1472688000, 'random url'] 

я получаю: d

OverflowError: normalized days too large to fit in a C int

Я могу вставить новые строки через cqlsh, так что я, вероятно, отсутствует что-то с Node.js водителем.

Любая идея?

Благодаря

ответ

3

Где у вас есть строка 2016-09-01 00:00:00+0000, вместо этого использовать new Date('2016-09-01 00:00:00+0000').

+0

Perfect. Благодарю. Я должен был получить это :-) –

Смежные вопросы