当前位置: 首页 > 知识库问答 >
问题:

无法强制转换为格式化的日期-Cassandra时间戳类型

姚浩歌
2023-03-14
select create_date from test_table where create_date='2018-10-27 11:36:37.950000+0000' allow filtering;

如果数据已经存储在表中(格式为:2018-10-27 11:36:37.950000+0000),并且还对create_date列执行range(>=或<=)操作,如何使查询工作?

我也尝试了create_date='2018-10-27 11:36:37.95z',create_date='2018-10-27 11:36:37.95'create_date='2018-10-27 11:36:37.95'

是否可以对这类时间戳类型的数据执行筛选?

附言。使用cqlsh对cassandra表运行查询。

共有1个答案

万勇
2023-03-14

在第一种情况下,问题是您用微秒指定时间戳,而Cassandra用毫秒操作--尝试删除最后三个数字-.950而不是.950000(有关详细信息,请参阅本文档)。时间戳以64位数字存储在Cassandra中,然后在打印结果时使用CQLSHRC选项的DateTimeFormat指定的格式进行格式化(请参见文档)。没有显式时区的日期要求在CQLSHRC中指定默认时区。

关于您关于筛选数据的问题--这个查询只适用于少量数据,对于较大的数据,很可能会超时,因为它需要扫描集群中的所有数据。此外,数据不会被正确排序,因为排序只发生在单个分区内。

如果您想执行这样的查询,那么Spark Cassandra连接器可能是更好的选择,因为它可以有效地选择所需的数据,然后您可以执行排序等,尽管这将需要更多的资源。

 类似资料:
  • 本文向大家介绍js时间戳转为日期格式的方法,包括了js时间戳转为日期格式的方法的使用技巧和注意事项,需要的朋友参考一下 什么是Unix时间戳(Unix timestamp): Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数

  • 问题内容: 使用PHP,我想将UNIX时间戳转换为类似于以下内容的日期字符串: 如何转换的时间戳,如到? 问题答案: 尝试这样:

  • 我需要使用Cassandra查询将时间戳“1998/02/12 00:00:00”转换为数据1998-02-12。谁能帮我一下吗。有没有可能?

  • 问题内容: 在SQL Server 2005中,为什么这样做: 展示: 1900年1月1日上午12:00 我会以为应该的吗? 问题答案: 空字符串将强制转换为,之后将强制转换为时代日期。 与不同,区分和一个空字符串。

  • 问题内容: 我有,我需要将其转换为应匹配此模式的类型对象-“ 2016-11-16T18:42:33.049Z”。我怎样才能做到这一点? 问题答案: Date d = new Date((long)timestamp*1000); 将创建一个实例。稍后显示它是另一回事。 我认为这就是您想要的: 测试:

  • 本文向大家介绍vue.js将时间戳转化为日期格式的实现代码,包括了vue.js将时间戳转化为日期格式的实现代码的使用技巧和注意事项,需要的朋友参考一下 看看下面的代码吧,具体代码如下所示:  把上面代码保存为date.js放到你的公共js文件夹中。 在你的需要格式化时间戳的组件里像下面这样使用: 总结 以上所述是小编给大家介绍的vue.js将时间戳转化为日期格式的实现代码,希望对大家有所帮助,如果