期望时间戳值Cassandra的长或日期字符串表示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了期望时间戳值Cassandra的长或日期字符串表示相关的知识,希望对你有一定的参考价值。

我正在尝试使用下面的查询在Cassandra表中插入一行

INSERT INTO battery_time_series_by_producer JSON '"timestamp":1514413581,"customer":"com.fetchcore-cloud.local","stream":"/sw8/sensor/battery","producer":"freight18","data":"battery_level":1,"is_charging":true,"timestamp":1514413581';

我收到以下错误

Expected a long or a datestring representation of a timestamp value, but got an Integer: 1514413581

表中的字段时间戳确实是时间戳格式。但是,如果只是JSON,我怎么能把它转换成很长的

我的Cassandra版本是3.11.1

答案

Cassandra将尝试将json对象解析为可能的最接近的数据类型,例如值1514413581将转换为Integer类型。如果你给出一个更大的数字,它将被解析为Long。

请注意,该时间戳类型表示自标准基准时间(称为epoch)以来的毫秒数。示例中的值表示1970年的时间。

简而言之,它要么使用字符串格式(例如“1514413581”),要么在cql语句中传递最近的时间戳值(后来自动转换为Long)。希望能帮助到你。

以上是关于期望时间戳值Cassandra的长或日期字符串表示的主要内容,如果未能解决你的问题,请参考以下文章

从 Impala 中的时间戳值变量中提取日期

使用 Spark Dataframe API 格式化时间戳值 [重复]

iOS日期转换器返回正确的日期[重复]

Bigquery 无法加载数据日期值或时间戳值格式错误

使用 numpy.max/ numpy.min 作为时间戳值

Cassandra 使用 LocalDate 截断毫秒