1

DALに、CQLクエリでオブジェクトを選択するメソッドがあります。私は次のように時間間隔を渡そうとしています:

//FilterStartTime, FilterEndTime are of type DateTime, stored in config
// converting DateTime to unix timestamp
var start = (FilterStartTime - new DateTime(1970, 1, 1).ToLocalTime()).TotalSeconds;
var end = (FilterEndTime - new DateTime(1970, 1, 1).ToLocalTime()).TotalSeconds;
// UploadedOn is of type timestamp
var selectQuery2 = "SELECT * FROM MyColumnFamily WHERE DocumentKey=" + key
                            + " AND UploadedOn>=" + start
                            + " AND UploadedOn<=" + end;
//"SELECT * FROM MyColumnFamily WHERE DocumentKey=000001 AND UploadedOn>=1341093600 AND UploadedOn<=1343599200"

データベースには、指定された範囲内のレコードが含まれています。ただし、上記のクエリは0要素を返します。CQLの使用は必須ではないので、APIを使用した可能性がありますが、Fetchメソッドはもうありません(http://stackoverflow.com/questions/5325035/fluentcassandra-range-selection-problem)。私のクエリの何が問題になっていますか。

4

1 に答える 1

1

変換の秒数をミリ秒に変更し、データベースを再作成して、すべてが機能しました。

var start = (FilterStartTime - new DateTime(1970, 1, 1).ToLocalTime()).TotalMilliseconds;
var end = (FilterEndTime - new DateTime(1970, 1, 1).ToLocalTime()).TotalMilliseconds;

APIで同じリクエストを行う方法にまだ興味があります(SlicePredicateQueryを使用しますか?)。

于 2012-07-11T08:17:32.940 に答える