時使用這就是我想插入我的數據庫日期:卡桑德拉 - 錯誤的時區將
'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});
我安裝卡桑德拉直接從apache website,並且在安裝或執行二進制文件時沒有指定任何時區或任何東西。
有誰知道爲什麼時間是8個小時了,我該如何解決?
編輯: 我嘗試了不同的硬編碼的日期,顯然不是所有的日期是8小時落後。與2月,3月和4月的月份相關的日期在數據庫中顯示7個小時。 12月仍然會出現8小時後。
EDIT2: WOW!所以我沒有提到我用來查看數據的IDE,因爲我認爲這並不重要,但我正在使用dbeaver。我決定在終端中使用cqlsh查看我的數據(而不是在dbeaver中查看它),並且的值是正確的!我也嘗試通過node.js檢索數據並打印出值,並且值也是正確的!這導致我得出結論,有dbeaver或它使用的cassandra驅動程序。
這是一個錯誤?或者有沒有辦法讓日期在dbeaver中正確顯示?
您是通過節點插入時間還是由cassandra加蓋 – Derek
@derek我從節點插入時間(如上面的代碼所示)。 – Kacy
date_created列的數據庫類型是什麼?嘗試1970-01-18T00:00:00 + 0000而不是1970-01-18T00:00:00 + 00:00 – Veeram