【问题标题】:Cassandra: epoch time retrieval issuesCassandra:纪元时间检索问题
【发布时间】:2015-02-19 08:10:03
【问题描述】:

我将纪元时间(毫秒数)存储在 C* db 中,但是在检索行数据时,我正在获取以下格式的数据。

starts: {
low: 1753507485
high: 330
unsigned: false
}

我的表结构如下:

CREATE TABLE ks.cron_tasks(
    type varchar,
    starts bigint,
    chatid varchar,
    status varchar,
    result varchar,
    PRIMARY KEY (type, starts)
);

我验证了数据已正确输入到数据库中,但是在取回数据时,我得到了lowhigh 参数。

注意:我的 tz 是 IST(GMT+330 分钟)。

我的输入是“1419092715165”的开始值。

现在,我怎样才能得到这个确切的值。

【问题讨论】:

  • 作为此问题的替代解决方案,我可以以双精度形式存储开头,并且效果很好。但我仍然很想知道 bigint 数据是如何分成高低部分的。

标签: node.js cassandra cqlsh


【解决方案1】:

根据您的标签,我猜您正在使用 node.js 驱动程序。该驱动程序使用 long.js 类来表示 64 位整数(bigint 是 64 位整数)。

https://www.npmjs.com/package/long

低位和高位分别代表整数的前 32 位和后 32 位。您应该能够通过在 long 对象上调用 toString() 来获得整数的字符串表示形式。

//string value of the integer representation
var val = row.starts.toString();

Google Closure Long documentation.

【讨论】:

    猜你喜欢
    • 2011-09-24
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 2017-04-02
    • 2011-04-27
    • 2017-05-13
    • 2018-11-24
    • 2017-04-02
    相关资源
    最近更新 更多