Ich versuche herauszufinden, wie ich Cassandra in einem winzigen Intervall an bestimmten Daten mit Java 8 API abfragen kann.Cassandra Abfrage auf Zeitmarke Spalte gibt keine Werte mit Java Instant-Typ
Stellen Sie sich zum Beispiel vor, ich habe eine Gruppentabelle.
create table groups(
group_name text,
updated_on timestamp
primary key (group_name, updated_on)
);
Ich habe folgende Datensätze in der Tabelle
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
Ich mag würde eine Abfrage cassandra wie die folgende auszuführen.
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'
Also im Wesentlichen möchte ich Daten über die Minute Intervall erhalten.
Ich benutze ein GroupAccessor mit dem datastax api.
@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);
Meine Frage ist, wie würde der Client Anruf aussehen? Was ist der richtige Weg, um die Anfrage mit Java 8 API zu senden?
Ich benutze das folgende, aber es gibt mir seltsame Ergebnisse.
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);
In der Realität sollte dieser Code oben 2 Zeilen zurückgeben.
RealGroup 2017-01-01 04:30:00-0800
RealGroup 2017-01-01 04:30:15-0800
aber gibt keine zurück.
_Odd_ wie? Was ist unerwartet? –
Die Rückgabe ist leer. – user1172490
Anstelle von 'ZoneOffset.UTC' möchten Sie ein' ZoneOffset', das die '-0800' repräsentiert, die Sie in Ihrer CQL-Abfrage haben. –