2017-03-31 57 views
0

正常工作,我有以下似的查询从卡桑德拉检索数据时间戳比较不急卡桑德拉

SELECT * FROM表,其中CREATED_TIME> =“2017年3月23日00:00:00.0”和CREATED_TIME < = '2017-03-25 00:00:00.0';

表中有70行created_time作为2017-03-25,但上述查询没有返回所有行。

created_time被定义为cassandra中的timeuuid。有人能帮助我,为什么查询不工作

+0

是什么你的表结构? –

+0

谁在mysql与此相关? –

+0

如果你从表格10中选择*,create_time会得到什么值?请记住,在Presto中,'timeuuid'类型被映射到'VARCHAR'。 –

回答

0

如果created_time被定义为timeuuid,我想一个查询谓词会比较,为一个timeuuid值,而不是字符串或日期字符串。

我们可以使用minTimeuuidmaxTimeuuid函数来生成值,我们可以将其与timeuuid列进行比较。

如果我们想在某个时间3月25日与created_time行,我们可能想的比较是“小于” 26号“2017年3月26日”

例如:

where created_time >= minTimeuuid('2017-03-25 00:00+0000') 
    and created_time < minTimeuuid('2017-03-26 00:00+0000') 
+0

我写在急查询和我得到以下错误,当我使用minTimeuuid功能: 查询20170403_224330_25606_q2qw7失败:线路1:106:功能mintimeuuid未注册 – java2890

+0

显然,很快映射卡桑德拉'timeuuid'类型为VARCHAR,和急不支持Cassandra minTimeuuid函数。 Presto应该邀请更好地支持'timeuuid'和'minTimeuuid'函数的扩展。如果扩展presto不是一个理想的选择,那么你需要探索一些其他的选择,比如添加一个'timestamp'列,这个列支持。或者,实现一个模仿Cassandra minTimeuuid函数的函数(返回等价值),并在Cassandra查询中使用该值...'created_time>'mygenerateduuidvalue''。 – spencer7593