java 8 apiを使用して特定の日付に1分間隔でcassandraをクエリする方法を理解しようとしています。JavaスタンドアロンタイプのCassandraクエリで値が返されない
たとえば、グループテーブルがあるとします。
create table groups(
group_name text,
updated_on timestamp
primary key (group_name, updated_on)
);
私はテーブル内の次のレコードを持っている
group_name updated_on
RealGroup 2017-01-01 04:30:00-0800
RealGroup 2017-01-01 04:30:15-0800
MockGroup 2017-02-05 04:30:00-0800
私は次のようなカサンドラにクエリを実行したいと思います。
select * from groups where group_name = 'RealGroup' and updated_on >= 2017 01-01 04:30:00-0800 AND <= 2017-01-01- 04:30:59-0800'
本質的に、私はMINUTE間隔でデータを取得したいと思います。
私はdatastax apiでGroupAccessorを使用しています。
@Query("SELECT * FROM GROUPS WHERE GROUP_NAME = :groupName AND UPDATED_ON>= :startDate AND UPDATED_ON<= :endDate")
Result<Group> getResults(@Param("groupName") String groupName, @Param("startDate") Instant startDate, @Param("endDate") Instant endDate);
私の質問は、クライアントの呼び出しはどうですか?どのようなJava 8のAPIを使用してリクエストを送信する正しい方法は?
私は以下を使用していますが、それは私に奇妙な結果を与えています。
LocalDateTime startDate = LocalDateTime.of(2017, Month.JANUARY, 1, 4, 30);
LocalDateTime endDate = LocalDateTime.of(2017, Month.JANUARY, 1, 4, 31);
Instant start = startDate.toInstant(ZoneOffset.UTC);
Instant end = endDate.toInstant(ZoneOffset.UTC);
Result<Group> dateGroup = groupAccessor.getResults("RealGroup", start, end);
実際には、このコードは2行を返す必要があります。
RealGroup 2017-01-01 04:30:00-0800
RealGroup 2017-01-01 04:30:15-0800
ただし、返さない。
_Odd_ how?予期しないことは何ですか? –
返品は空です。 – user1172490
'ZoneOffset.UTC'の代わりに、CQLクエリにある' -0800'を表す 'ZoneOffset'が必要です。 –