时使用这就是我想插入我的数据库日期:卡桑德拉 - 错误的时区将
'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