【问题标题】:Cassandra Timestamp Type Column ConversionCassandra 时间戳类型列转换
【发布时间】:2012-12-27 04:46:15
【问题描述】:

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

我正在通过 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 不是我插入的年份。为什么会发生这种情况,我该如何解决?

【问题讨论】:

    标签: c# cassandra thrift


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-09-27
      • 2018-06-24
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      • 2023-04-07
      • 2019-03-31
      • 2017-06-26
      • 2012-08-19
      相关资源
      最近更新 更多