2017-03-31 55 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