2

如果有人能解决我的问题,我会非常感动。

我正在通过 C# 使用 Cassandra Thrift API。我在 Cassandra 中有一个“时间戳”类型的列,它应该是自 Unix 纪元以来的秒数,表示为 8 字节长。

要转换,我这样做:

BitConverter.GetBytes(ToUnixTimestamp(columnValue)));

在哪里:

protected static long ToUnixTimestamp(DateTime dateTime)
{
    return Convert.ToInt64((dateTime - new DateTime(1970, 1, 1).ToLocalTime()).TotalSeconds);
}

当我在 CLI 中检查我的值时,我看到:

=> (column=created, value=225330207-01-15 03:30:53-0500, timestamp=1356568301)

Cassandra 没有解释我正确插入的值。225330207年不是我插入的年份。为什么会发生这种情况,我该如何解决?

4

1 回答 1

3

您需要将“时间戳”类型列中的值存储和检索为自 Unix 纪元以来的毫秒数,而不是秒数。

http://cassandra.apache.org/doc/cql/CQL.html#usingdates

于 2012-12-26T20:46:15.293 回答