Это дата, что я пытаюсь вставить в свою базу данных:Cassandra - Неправильный часовой пояс используется при вставке
'1970-01-18T00:00:00+00:00'
Но когда я смотрю на записи в базе данных это за 8 часов:
1970-01-17 16:00:00
Часовой пояс, используемый для моей системы Ubuntu, - UTC. Я проверил, набрав date
в терминале, который выдает:
Tue Oct 4 00:00:53 UTC 2016
Я использую Node.js, и это, по существу код используется для вставки:
const Cassandra = require('cassandra-driver');
const Promise = require('bluebird');
const db = Promise.promisifyAll(new Cassandra.Client({ contactPoints: ['127.0.0.1'], keyspace: 'project' }));
let date_created = '1970-01-18T00:00:00+00:00';
db.executeAsync("INSERT INTO posts (id, date_created) VALUES (?, ?);", [someID, date_created], {prepare: true});
Я установил Cassandra прямо из apache website и не устанавливал какой-либо часовой пояс или что-либо еще при установке или выполнении двоичного файла.
Кто-нибудь знает, почему настало 8 часов и как я могу это исправить?
Edit: Я пробовал разные жёстко прописанные даты, и, видимо, не все даты за 8 часов. Даты, связанные с месяцами февраля, марта и апреля, появляются в базе данных на 7 часов. Декабрь по-прежнему появляется на 8 часов.
Edit2: WOW! Поэтому я не упомянул IDE, который использовал для просмотра моих данных, потому что я не думал, что это важно, но я использую dbeaver. Я решил посмотреть мои данные, используя cqlsh в терминале (вместо того, чтобы смотреть на него в dbeaver), и значения верны! Я также попытался получить данные через node.js и распечатать значения, а также правильные значения! Это приводит меня к выводу, что есть что-то с dbeaver или драйвером cassandra, который он использует.
Это ошибка? Или есть способ правильно отобразить даты в dbeaver?
Вы вставляете время через узел или штамп cassandra – Derek
@derek Я вставляю время с узла (как показано в приведенном выше коде). – Kacy
Каков тип базы данных для столбца date_created? try 1970-01-18T00: 00: 00 + 0000 вместо 1970-01-18T00: 00: 00 + 00: 00 – Veeram