【问题标题】:Cql time datatype to java time datatypeCql 时间数据类型到 java 时间数据类型
【发布时间】:2019-03-20 17:54:52
【问题描述】:

我是 Cassandra 的新手。我开发了一个名为 customer 的表,其中一列是时间。因此,它在 CQL shell 中将其数据类型作为时间本身。但是在模型中的 Spring Boot 应用程序中,我将其作为字符串时间。因此,当我通过在 postman 中调用 get URL 来执行代码时,它在 CQL shell 时间中显示为 13:12:56.000,而在 postman 中它显示类似 48654000000000 的内容。

所以我的问题是为什么它不像在 CqQL shell 中那样显示?

【问题讨论】:

  • CQL 'time' 值被编码为一个 64 位有符号整数,表示自午夜以来的纳秒数。所以我想这是一个很长的内部,你只是得到那么长。 Shell 也得到了 long,但它也将其转换为字符串(就像您将 System.nanoTime() 转换为字符串一样)

标签: java spring-boot cassandra datastax-java-driver


【解决方案1】:

正如评论中提到的,数据被编码为代表毫秒的64位长数字,CQLSH在显示数据时正在做转换。

当您使用 Java 驱动程序时,timestamp 类型可以映射到 java.util.Datedefault mappings,或者它可以映射到 Java 8 或 Joda 的 Instant,如果您使用 optional codecs

关于邮递员 - 很难准确地说出为什么会发生在他们这边。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    相关资源
    最近更新 更多