2015-03-26 10 views
9

w SQL, jestem w stanie to zrobić:Pobierz aktualna data w Cassandra CQI wybrać

select getdate(), getdate() - 7 

która zwraca bieżącą datę, a także bieżącej daty - 7 dni. Chcę osiągnąć to samo w Cassandra CQL. Próbowałem:

select dateof(now()) 

Ale to nie działa. Działa tylko na insert, a nie w select. Jak mogę uzyskać to samo? Każda pomoc będzie doceniona.

Odpowiedz

18
select dateof(now()) 

Sam w sobie, masz rację, to nie działa. Ale jeśli masz tabelę że znasz tylko jeden wiersz (jak system.local):

[email protected]:stackoverflow> SELECT dateof(now()) FROM system.local ; 

dateof(now()) 
-------------------------- 
2015-03-26 03:18:39-0500 

(1 rows) 

Niestety, Cassandra CQL nie (? Jeszcze CASSANDRA-5505) obejmują wsparcie dla operacji arytmetycznych, nie mówiąc już data arytmetyczną. Zatem odjęcie 7 dni od tej wartości jest czymś, co musiałbyś zrobić na poziomie aplikacji.

+1

Wielkie dzięki, to zadziałało. Zrobiłem odejmowanie na moim poziomie aplikacji. – Hitesh

+1

@Aaron Huh. Wygląda na to, że jest bezpośredni [Chinese ripoff] (http://www.developersite.org/101-191317-cassandra) StackOverflow (prawdopodobnie wyłącznie w celu wyświetlania reklam). Ta lub dwie inne osoby miały doskonale identyczną wymianę Q/A. Rzeczy, których się uczysz. – arbitrarystringofletters

+0

@Aaron Jeszcze jedna uwaga, minęły dwa lata. Czy wiesz, czy ta funkcja została dodana do Cassandry? – arbitrarystringofletters